【发布时间】:2014-04-09 13:58:00
【问题描述】:
我想初始化一个所有元素都为 0 的二维数组。 我试过这个:
scanf("%d",&n);
int arr[n][n]={0};
但我得到了[错误]:“可变大小的对象可能未初始化”
那么,该怎么做呢?
【问题讨论】:
-
当我使用静态 int arr[n][n] 时,我得到了这个:[错误] 'a' 的存储大小不是恒定的
-
我有一个建议:不要使用 VLA,而是使用动态分配:
int *arr = calloc(n * n, sizeof *arr); -
我用 calloc 它说:[错误]:“函数 'calloc' 的两个参数”
-
我的错误,已编辑 ... 之后您需要验证
arr并通过n * row + col计算对数组的每次访问 -
@pmg 太容易使用 calloc。如果有一个简单的解决方案并且有一个不必要的复杂解决方案,请始终使用不必要的复杂解决方案:)
标签: c