我试图找到一种分配单个内存块的方法,但使用多维语法,并且我在 SO 上找到了我正在寻找的确切东西。
malloc in C, but use multi-dimensional array syntax
但是在剪切/粘贴代码之后:
int (*MAGICVAR)[200] = malloc(400 * sizeof *MAGICVAR);
MAGICVAR[20][10] = 3;
弹出此错误消息:“不能使用 void * 类型的数组来初始化 int(*)[200] 类型的实体” 将 malloc 转换为“int *”或“int **”并没有帮助
我使用的是vs2010。
最佳答案
首先,使用 C 编译器而不是 C++ 编译器来编译 C 代码,其次,如果必须使用 C++ 编译器,请将 malloc
的返回值强制转换为声明的类型,
int (*MAGICVAR)[200] = (int(*)[200])malloc(400*sizeof *MAGICVAR);
关于c - malloc 在 c 中但使用 2d 语法...编译没有答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511091/