为什么我收到以下代码的“可变大小的对象可能无法初始化”的错误?
int boardAux[length][length] = {{0}};发布于 2010-06-21 16:06:17
我假设您使用的是C99编译器(支持动态调整数组大小)。您代码中的问题是,当编译器看到您的变量声明时,它无法知道数组中有多少个元素(我在这里也假设,从编译器错误中可以看出,length不是一个编译时间常数)。
您必须手动初始化该数组:
int boardAux[length][length];
memset( boardAux, 0, length*length*sizeof(int) );发布于 2014-11-08 17:21:38
这将产生错误:
int len;
scanf("%d",&len);
char str[len]="";这也会产生错误:
int len=5;
char str[len]="";但这很好用:
int len=5;
char str[len]; //so the problem lies with assignment not declaration您需要用以下方式来赋值:
str[0]='a';
str[1]='b'; //like that; and not like str="ab";发布于 2016-03-27 20:35:58
在声明数组之后
int boardAux[length][length];将初始值赋值为零的最简单方法是使用for循环,即使它可能有点长
int i, j;
for (i = 0; i<length; i++)
{
for (j = 0; j<length; j++)
boardAux[i][j] = 0;
}https://stackoverflow.com/questions/3082914
复制相似问题