const unsigned int PATRON_TABLE_SIZE = 10001;
Patron* patronTable[PATRON_TABLE_SIZE];
Patron 是一个包含基本信息的类。我检查了patronTable[500] 的指针,它是NULL,但是patronTable[5000] 的指针不是NULL。我找不到任何关于为什么会这样的信息。任何帮助表示赞赏!
c++ 不会自动将指针数组初始化为任何设置值(除非您明确告诉它)。所以你看到的只是随机垃圾,它们恰好占据了分配数组的空间。patronTable
很PATRON_TABLE_SIZE
长,就像你说的那样
默认情况下,不初始化 C++ 中非全局或声明为静态的数组。
您可以通过以下方式初始化数组的内容
Patron* patronTable[PATRON_TABLE_SIZE] = { };
这会将所有值设置为零。
如果您编写非托管(不是 .NET)代码,则不会清除内存。如果您希望所有数组元素都为 NULL,请执行以下操作memset(patronTable, 0, PATRON_TABLE_SIZE * sizeof(Patron[0]));