关于C++中的new int()的值为多少

时间:2021-01-22 20:39:35
本人在VC6.0中用语句int *i=new int();的值为多少。侧得为非零. C++primer 中给的为0.求原因

6 个解决方案

#1


C++语言没有定义,返回多少都可以。

#2


这是随机值,一切皆有可能

#3


int *i = new int();

是在内存中申请一个大小为 sizeof(int) 的内存块,并返回给指针 i
而这个 new 的过程,是不包括初始化处理的,即新申请的内存块里面有什么值,那么返回给指针 i 的就是什么值

至于你说的 C++ primer 返回的指针中的值为 0,那么有可能是 C++ primer 内部作了初始化处理,也有可能是你申请的内存里面本来就是零值

#4


好的,多谢各位

#5


申请后,使用memset初始化一个值

#6


结果应该是 i 非零, *i 零或非零都行,自己初始化一下最安全,不就一句 *i=0;

#1


C++语言没有定义,返回多少都可以。

#2


这是随机值,一切皆有可能

#3


int *i = new int();

是在内存中申请一个大小为 sizeof(int) 的内存块,并返回给指针 i
而这个 new 的过程,是不包括初始化处理的,即新申请的内存块里面有什么值,那么返回给指针 i 的就是什么值

至于你说的 C++ primer 返回的指针中的值为 0,那么有可能是 C++ primer 内部作了初始化处理,也有可能是你申请的内存里面本来就是零值

#4


好的,多谢各位

#5


申请后,使用memset初始化一个值

#6


结果应该是 i 非零, *i 零或非零都行,自己初始化一下最安全,不就一句 *i=0;