首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分配二维数组的奇怪方式?

分配二维数组的奇怪方式?
EN

Stack Overflow用户
提问于 2016-04-22 20:43:56
回答 1查看 5.9K关注 0票数 116

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

代码语言:javascript
复制
double (*e)[n+1] = malloc((n+1) * sizeof(*e));

它假设创建了一个由(n+1)*(n+1)双精度数组成的二维数组。

我之所以这么说,是因为到目前为止,我问过的人都不能确切地告诉我这是做什么的,也没有人能告诉我它是从哪里来的,或者为什么它应该起作用(据说它确实起作用了,但我还不相信它)。

也许我漏掉了一些明显的东西,但如果有人能给我解释一下上面这行,我会很感激的。因为就我个人而言,如果我们使用一些我们真正理解的东西,我会感觉更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-22 20:51:56

变量e是指向double类型的n + 1元素数组的指针。

e上使用解引用操作符可以得到e的基本类型,即“double类型的n + 1元素数组”。

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

票数 92
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36794202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档