-5
const unsigned int PATRON_TABLE_SIZE = 10001;
Patron* patronTable[PATRON_TABLE_SIZE];

Patron 是一个包含基本信息的类。我检查了patronTable[500] 的指针,它是NULL,但是patronTable[5000] 的指针不是NULL。我找不到任何关于为什么会这样的信息。任何帮助表示赞赏!

4

4 回答 4

2

c++ 不会自动将指针数组初始化为任何设置值(除非您明确告诉它)。所以你看到的只是随机垃圾,它们恰好占据了分配数组的空间。patronTablePATRON_TABLE_SIZE长,就像你说的那样

于 2013-03-07T19:37:08.123 回答
1

默认情况下,不初始化 C++ 中非全局或声明为静态的数组。

于 2013-03-07T19:36:29.997 回答
0

您可以通过以下方式初始化数组的内容

Patron* patronTable[PATRON_TABLE_SIZE] = { };

这会将所有值设置为零。

于 2013-03-07T23:04:17.680 回答
0

如果您编写非托管(不是 .NET)代码,则不会清除内存。如果您希望所有数组元素都为 NULL,请执行以下操作memset(patronTable, 0, PATRON_TABLE_SIZE * sizeof(Patron[0]));

于 2013-03-07T19:44:40.053 回答