其中 ( 新 int*) 指向
Where ( new int*) points to
我在vs2012中做了一些测试,代码如下:
在调试模式下:
int *b; int *a = b; // Crash!!
int *b = *(new int*); int *a = b; //this is ok
我很好奇为什么会这样。默认情况下,(新 int*) 是否指向一些真实内存?由于它是在非调试模式下运行的,所以我想知道是否可以编写这样的代码
我很好奇为什么会这样。
由于使用了未初始化对象的值,两者都具有未定义的行为。虽然这应该崩溃令人惊讶,但没有理由假设它不会以某种不可预测的方式出错。
取消引用未初始化的指针(例如 int a = *b;
而不是int *a = b;
),更有可能导致崩溃。你确定你没有这样做吗?
默认情况下,(新 int*) 是否指向一些真实内存?
new int*
返回的int**
确实如此。它指向的int*
未初始化。
如果可以编写这样的代码
编写具有未定义行为的代码永远是不行的。即使它看起来"有效",它也会在你最意想不到的时候回来咬你。
相关文章:
- 常量指针到成员是否默认指向 int?
- 在开关案例节点中,将const int int指向int
- 悬空指向 int 和 char* 常量的指针/引用
- 指针和数组 [ 指向 int 的指针与指向字符的指针]
- 在循环中设置指向 int 值的指针
- 如何将指向 int(数组)的指针复制到 int 数组?
- 在 c++ 中,指向 int 的指针和指向指向 int 的指针之间的区别是什么?
- 将指向 int 数组的指针作为参数传递C++
- 类型转换指向 int 的 void 指针时出错
- 如何在 C++ 中将指向 int 数组的指针设置为 NULL
- 引用指向 int 的指针会导致错误
- 如何在 C++ 中创建指向 int 的多重提及数组的指针
- 指向 int 类型的指针在C++中无法正确协作
- 在指针指向指针字段的场景中访问值,每个指针都指向 int
- C++:初始化指向 int 的指针
- 指向 int 数组的指针给出的地址与取消引用时相同
- 指向 int 数组的指针,从另一个方法传递和使用它
- 如何声明指向int数组的指针数组
- 我的项目中指向int的速度问题
- 函数,返回指向int数组的指针