我想初始化一个2d数组,其所有元素都是0。 我试过这个:
scanf("%d",&n);
int arr[n][n]={0};
但我得到了[错误]:"可变大小的对象可能无法初始化"
那么,怎么做呢?
答案 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;
}
}