开发者社区 问答 正文

分配二维数组的怪异方法?

在一个项目中,有人推这条线:

double (*e)[n+1] = malloc((n+1) * sizeof(e)); 据推测会创建一个(n + 1)(n + 1)个double的二维数组。

按说,我说,因为到目前为止,没有人问我能告诉我这是什么呢,正好,也不在那里它源自或者为什么它应该工作(据称,这样做,但我还没有买的话)。

也许我缺少明显的东西,但是如果有人可以向我解释以上内容,我将不胜感激。因为就我个人而言,如果我们使用实际理解的东西会感觉好很多。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 10:33:31 345 分享 版权
1 条回答
写回答
取消 提交回答
  • 该变量e是指向n + 1类型为的元素数组的指针double。

    使用dereference运算符可以e使您的基本类型e为“ n + 1元素类型数组double”。

    该malloc调用只是采用e(上面说明的)基本类型并获取其大小,然后乘以n + 1,然后将该大小传递给malloc函数。本质上是分配元素数组的n + 1数组。n + 1double

    2020-02-08 10:33:41
    赞同 展开评论
问答地址: