6 个解决方案
#1
C++语言没有定义,返回多少都可以。
#2
这是随机值,一切皆有可能
#3
int *i = new int();
是在内存中申请一个大小为 sizeof(int) 的内存块,并返回给指针 i
而这个 new 的过程,是不包括初始化处理的,即新申请的内存块里面有什么值,那么返回给指针 i 的就是什么值
至于你说的 C++ primer 返回的指针中的值为 0,那么有可能是 C++ primer 内部作了初始化处理,也有可能是你申请的内存里面本来就是零值
是在内存中申请一个大小为 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 内部作了初始化处理,也有可能是你申请的内存里面本来就是零值
是在内存中申请一个大小为 sizeof(int) 的内存块,并返回给指针 i
而这个 new 的过程,是不包括初始化处理的,即新申请的内存块里面有什么值,那么返回给指针 i 的就是什么值
至于你说的 C++ primer 返回的指针中的值为 0,那么有可能是 C++ primer 内部作了初始化处理,也有可能是你申请的内存里面本来就是零值
#4
好的,多谢各位
#5
申请后,使用memset初始化一个值
#6
结果应该是 i 非零, *i 零或非零都行,自己初始化一下最安全,不就一句 *i=0;