-1

我试图找到一种分配单个内存块的方法,但使用多维语法,我在 SO 上找到了我正在寻找的确切内容。

C 中的 malloc,但使用多维数组语法

但是在剪切/粘贴代码之后:

  int (*MAGICVAR)[200] = malloc(400 * sizeof *MAGICVAR);
    MAGICVAR[20][10] = 3; 

弹出此错误消息:“无法使用 void * 类型的数组来初始化 int(*)[200] 类型的实体”并且将 malloc 强制转换为“int *”或“int **”也无济于事"

我正在使用vs2010。

4

1 回答 1

2

首先,使用 C 编译器而不是 C++ 编译器来编译 C 代码,其次,如果必须使用 C++ 编译器,请将返回值malloc转换为声明的类型,

int (*MAGICVAR)[200] = (int(*)[200])malloc(400*sizeof *MAGICVAR);
于 2012-09-20T10:52:39.473 回答