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

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

推荐答案

我假设您使用的是C99编译器(支持动态大小的数组).代码中的问题是,当编译器看到您的变量声明时,它无法知道数组中有多少个元素(我在这里也假设,根据编译器错误,length不是编译时常量).

必须手动初始化该数组:

int boardAux[length][length];
memset( boardAux, 0, length*length*sizeof(int) );

C++相关问答推荐

如何在C中的空指针函数中传递浮点值

ARM上的Modulo Sim Aarch 64(NEON)

如何用C(使用两个s补数算术的32位程序)计算

在Windows上构建无聊的SSL x64

为什么这个C程序代码会产生以下结果?

手动矢量化性能差异较大

为什么在Linux(特别是Ubuntu 20.04LTS)上,POSIX共享内存对象在重启后仍然存在,然后突然变成了根用户?

将整数的.csv文件解析为C语言中的二维数组

在c++中使用堆栈的有效括号

如何在C中通过套接字自定义数据类型读取原始变量?

错误:包含文件时类型名称未知

关于scanf()和空格的问题

我在反转双向链表时遇到问题

我在C中运行和调试时得到了不同的输出

从不兼容的指针类型返回&&警告,但我看不出原因

int * 指向int的哪个字节?

不兼容的整数到指针转换传递';char';到类型';常量字符*

分支预测和UB(未定义的行为)

DennisM.Ritchie的C编程语言一书中关于二进制搜索的代码出现错误?

通过修改c中的合并排序对数组的偶数索引进行排序