int a = 10;
int *p = new int[0];
p = &a;
cout << *p << endl;
在C++中,如果分配内存大小为零会发生什么?
分配后,我得到有效的内存指针,并打印有效的数字。
但我认为 new 运算符应该返回类似 FAILD 或 NULL 的内容。
有人可以详细解释一下吗?
分配后,我得到有效的内存指针,并打印有效的数字。
您提供的代码实际上并未对此进行测试。
当你这样做时p = &a
, 你是重新分配 p
指向完全不同的地方。无论它之前持有什么,都与程序的继续执行无关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)