为什么我的数组默认初始化为0?

use*_*187 -2 c++ arrays

我有这个非常大的数组,称为网格.当我按如下方式声明数组时,根据整数的数组构造函数,数组中的每个值都应设置为0

int testGrid[226][118];
Run Code Online (Sandbox Code Playgroud)

然而,当我遍历整个数组时,我似乎为数组的大部分得到0,但是在数组的下半部分,我得到任意垃圾.似乎解决方案是迭代数组并手动将每个值设置为0.有更好的方法吗?

gsa*_*ras 5

你可以这样做:

int testGrid[226][118] = {};
Run Code Online (Sandbox Code Playgroud)

这会将您的条目初始化为0.


请参阅这个C 答案,这对C++也很有用.

顺便说一句,因为这是C++,考虑使用std :: array或std :: vector.

  • 第一个值将设置为"0",其余值将设置为"0".如果你做`.. = {1}`,第一个元素将被设置为`1`,其余的将被设置为'0`. (3认同)