c++中的指针初始化

pointer initializing in C++!

本文关键字:初始化 指针 c++      更新时间:2023-10-16

为什么这段代码可以工作?应该给出一个错误。

int* p;
*p=34;
cout<<*p<<endl;

int* p应该只为指针本身分配内存。指针的值将是某个内存地址,但该地址的内存尚未分配。

在c++中,指针默认不初始化为NULL。该程序每次运行时都会显示未定义的行为,并且有时可能会给出分段错误。

当你写int *p = new int;*p所指向的地址,它获得分配的"int"大小。当你写*p=34地址的值是34;

你可以创建一个没有new的指针,就像一个变量(指向变量)。使用"new"只是一种手动分配内存的方法。我们的编译器足够聪明。但记住这不是好的练习。有些编译器可能会抛出错误。总是使用"new"来避免错误,并在完成分配后删除分配。