我试图找到一种方法来分配单个内存块,但使用多维语法,我找到了我在SO上寻找的确切内容。
C 语言中的 malloc,但使用多维数组语法
但是在那里剪切/粘贴代码后:
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);