【发布时间】:2014-02-16 05:54:29
【问题描述】:
我有这个练习题:
用整数的 malloc 定义一个二维不规则数组,其中 out dim = 4 并且 inner = 10,11,12,13。 (提示:使用 for 循环)
所以,我意识到我可以用这样的整数的 malloc 编写一个 2D 不规则数组:
int (*array)[20] = malloc((sizeof *array) * 10);
那将是一个 10x20 的数组,我相信使用 amlloc。
我只是不确定如何使用 for 循环将内部尺寸从 10 更改为 11 再从 12 更改为 13。感谢任何帮助!
int j;
for (int k = 0; k < 4; k++ )
{
for ( j = 10; j < 14; j++ )
{
int (*array)[4] = malloc((sizeof *array) * j)
}
}
顺便说一句,这接近正确吗?
【问题讨论】:
-
每次执行外部
for循环时,内部for循环的结束值加1。 -
我添加的内容接近正确吗?
-
是的,您只需要在第二个
for中添加类似j < 10 + k的内容。看看它是如何工作的? -
由于某种原因,我在 malloc 下遇到错误。它说 void 类型的值不能用于初始化 int "int(*)[4]" 类型的实体
-
在您做出我建议的更改之前它是否有效?
标签: arrays malloc heap-memory