C ++中的{0}数组填充赋值?

时间:2017-10-31 11:32:37

标签: c++ arrays

我使用此作业声明

阅读
int arr[n][n]={0};

将给出一个nxn矩阵,其中包含0' s,但是当我运行它时,它不会在特定位置给出0,在某些情况下它们甚至看起来像地址,特别是在末尾附近arr [n] [n]和arr [n] [1],其中所有其他都分配给0 ..什么使这个分配发生?使用for循环来填充此数组不会产生此问题。

编辑:在这种情况下,n是任何正整数> = 2

似乎{number}只影响第一个元素,剩下的就剩下了。以下语句将所有元素设置为0.感谢评论中的人员实际回答了问题。

int arr[n][n]={};

1 个答案:

答案 0 :(得分:1)

  

特别靠近末尾arr[n][n]arr[n][1]

arr[n][n]arr[n][1]都是无效访问,使用这些索引会导致未定义的行为。

有效索引的范围是[0,n-1],例如最后一个元素是arr[n - 1][n - 1]