如何用所有元素初始化2d数组是0?

时间:2014-04-09 13:58:01

标签: c

我想初始化一个2d数组,其所有元素都是0。 我试过这个:

scanf("%d",&n);
int arr[n][n]={0};

但我得到了[错误]:"可变大小的对象可能无法初始化"

那么,怎么做呢?

3 个答案:

答案 0 :(得分:5)

明确。

#include <string.h>

const int got = scanf("%d", &n);
int arr[n][n];
memset(arr, 0, sizeof arr);

请注意,如果got不是1,则上述内容具有未定义的行为。这非常危险。

答案 1 :(得分:2)

分两步完成:

int a[n][n];
for(int i=0;i<n;i++)
{
   for(int j=0;j<n;j++)
   {
      a[i][j] = 0;
   }
}

答案 2 :(得分:0)

可能是最简单的方法

for(i = 0; i < n; i++)
{
    for(j = 0; j < n; j++)
    {
        a[i][j] = 0;
    }
}