c - malloc 在 c 中但使用 2d 语法...编译没有答案

标签 c pointers multidimensional-array malloc

我试图找到一种分配单个内存块的方法,但使用多维语法,并且我在 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/

相关文章:

C-使用内核模块显示CPU信息

c - C 中的 SSE 编程 — 大小不能被 4 整除怎么办?

c++ - 递增指针时带或不带星号

C++ 引用参数和 C 链接

c - 为什么数组的值后面跟着三个零?

c - 是否可以在不调用main函数的情况下调用函数?

c - 通过 malloc 生成的数组与不是通过 malloc 生成的数组有何不同

java - 多维数组和方法

c - 如何将二维数组作为双指针传递给c中的函数?

JavaScript 多维数组 - 对象链接