C编译错误:“可能无法初始化可变大小的对象”

C编译错误:“可能无法初始化可变大小的对象”

为什么我使用以下代码收到错误“可能无法初始化可变大小的对象”?

int boardAux[length][length] = {{0}};


慕娘9325324
浏览 921回答 3
3回答

幕布斯7119047

我假设您使用的是C99编译器(支持动态大小的数组)。你的代码中的问题是,当编译器看到你的变量声明时,它不知道数组中有多少元素(我也在这里假设,编译器错误length不是编译时常量)。您必须手动初始化该数组:int boardAux[length][length];memset( boardAux, 0, length*length*sizeof(int) );

江户川乱折腾

您收到此错误,因为在C语言中,您不能使用具有可变长度数组的初始化程序。你得到的错误信息基本上都说明了一切。6.7.8初始化...3要初始化的实体的类型应为未知大小的数组或不是可变长度数组类型的对象类型。
打开App,查看更多内容
随时随地看视频慕课网APP