c++中的指针初始化
pointer initializing in C++!
为什么这段代码可以工作?应该给出一个错误。
int* p;
*p=34;
cout<<*p<<endl;
int* p应该只为指针本身分配内存。指针的值将是某个内存地址,但该地址的内存尚未分配。
在c++中,指针默认不初始化为NULL。该程序每次运行时都会显示未定义的行为,并且有时可能会给出分段错误。
当你写int *p = new int;*p所指向的地址,它获得分配的"int"大小。当你写*p=34地址的值是34;
你可以创建一个没有new的指针,就像一个变量(指向变量)。使用"new"只是一种手动分配内存的方法。我们的编译器足够聪明。但记住这不是好的练习。有些编译器可能会抛出错误。总是使用"new"来避免错误,并在完成分配后删除分配。
相关文章:
- 分段错误 - 读取初始化指针的数组
- 初始化指针的常量向量
- 初始化指针或引用成员变量以指向另一个成员
- C++初始化指针/引用/复制细微差别
- 使用无效指针初始化指针声明符的行为是否未定义?
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 如何使用可变模板初始化指针?
- 初始化指针时出现写入访问冲突
- C 错误,带有卷曲括号的字面初始化指针
- 重新初始化指针是一种不好的做法吗?
- 初始化指针?C
- 初始化指针向量的向量
- 如何在类函数中正确初始化指针
- C++初始化指针会使应用程序随机崩溃
- 初始化指针结构 - 内存中的外观
- 如何使用struct构造函数在结构中初始化指针阵列
- 在一行中声明并初始化指针到类实例
- 分配数组与初始化指针
- QT 中的非初始化指针
- 使用地址值初始化指针