【发布时间】:2012-12-19 20:31:55
【问题描述】:
我再次使用 C++ 并注意到在类成员方法或 main() 函数内声明为指针时数组初始化的奇怪行为。
int * p = new int[20];
我期望发生的事情是指针将保持未初始化的随机值,就像它们一样
int arr[20];
但相反,它们都归零。怎么回事?
【问题讨论】:
-
数组不是指针。指针不是数组。
p是一个指针,而不是一个数组。此外,p公然有一个初始化程序。 (但*p没有。) -
顺便说一句:大多数时候,您不应该使用原始指针或数组或
new [](您通常需要std::vector)。 -
@Cz-David 大多数操作系统会清除分配给您的程序的内存,这样您就无法窥视之前的程序做了什么。这可能是看到很多零的原因。
标签: c++ arrays pointers initialization int