C++ C++;指针数组的最大大小

C++ C++;指针数组的最大大小,c++,arrays,pointers,size,max,C++,Arrays,Pointers,Size,Max,用户是一个包含基本信息的类。我检查了patronTable[500]上的指针,它是空的,但patronTable[5000]上的指针不是空的。我找不到任何关于为什么会这样的信息。感谢您的帮助 > P>数组中的C++,不是默认的全局或静态声明,默认情况下不初始化。< P> C++不自动初始化指针数组到任何设置值(除非您明确地告诉它)。因此,您看到的只是随机垃圾,它碰巧占据了分配数组的空间用户表是用户表大小长的,就像您告诉它的那样如果您编写非托管(非.NET)代码,内存不会被清除。如果希望所有数组元

用户是一个包含基本信息的类。我检查了patronTable[500]上的指针,它是空的,但patronTable[5000]上的指针不是空的。我找不到任何关于为什么会这样的信息。感谢您的帮助

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

< P> C++不自动初始化指针数组到任何设置值(除非您明确地告诉它)。因此,您看到的只是随机垃圾,它碰巧占据了分配数组的空间<代码>用户表是
用户表大小
长的,就像您告诉它的那样

如果您编写非托管(非.NET)代码,内存不会被清除。如果希望所有数组元素都为NULL,请执行类似于
memset的操作(用户表,0,用户表大小*sizeof(用户[0])

您可以通过

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

这会将所有值设置为零

您是否初始化了
用户表
?仅仅因为您定义了一个表并不意味着它实际上会被填充。事实上,它充满了数组现在占用的内存位置中剩余的任何随机垃圾,每次运行程序时,null/notnull内容都会随机更改。
Patron* patronTable[PATRON_TABLE_SIZE] = { };