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

时间:2013-03-07 19:34:16

标签: c++ arrays pointers size max

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

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

之类的操作

答案 3 :(得分:0)

您可以通过

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

这会将所有值设置为零。