指针数组的最大大小

C++ Max size of array of pointers

本文关键字:数组 指针      更新时间:2023-10-16
const unsigned int PATRON_TABLE_SIZE = 10001;
Patron* patronTable[PATRON_TABLE_SIZE];

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

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

c++中非全局或声明为静态的数组默认不初始化。

如果您编写非托管(非。net)代码,则内存不会被清除。如果你想让所有数组元素都为NULL可以输入memset(patronTable, 0, PATRON_TABLE_SIZE * sizeof(Patron[0]));

可以通过

初始化数组的内容
Patron* patronTable[PATRON_TABLE_SIZE] = { };

将所有值设置为零。