C语言 用指针生成一个三维数组,用main调用另一个函数,该指针作为参数。

不要”数组名赋值给指针“,而是利用定义的指针直接生成三维数组。下午在网上找了很久都没有找到我运行成功了的。看到有说定义:int***p,的,但是没有用。麻烦大神说清楚点~... 不要 ”数组名 赋值给指针“,而是利用定义的指针直接生成三维数组。下午在网上找了很久都没有找到我运行成功了的。看到有说 定义:int *** p,的,但是没有用。麻烦大神说清楚点~谢谢!!!!解决问题的会给分。
不必给出全代码,给出有效的指针定义即可。谢谢!
展开
 我来答
wchyumo2011
推荐于2017-12-16 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2835万
展开全部

示例代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
           //有效部分
int ***p = (int***)malloc(sizeof(int**)*3);
for (int i = 0; i < 3; ++i){
p[i] = (int**)malloc(sizeof(int*) * 4);
}
for (int i = 0; i < 3; ++i){
for (int j = 0; j < 4; ++j){
p[i][j] = (int*)malloc(sizeof(int) * 5);
}
}
//有效部分完
//下面内容为测试
for (int i = 0; i < 3; ++i){
for (int j = 0; j < 4; ++j){
for (int k = 0; k < 5; ++k){
p[i][j][k] = i + j + k;
}
}
}
for (int i = 0; i < 3; ++i){
for (int j = 0; j < 4; ++j){
for (int k = 0; k < 5; ++k){
printf("%d\t", p[i][j][k]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
更多追问追答
追问
刚刚写了试了是对的耶!之前不知道怎么的试错了。
那如果是在另一个函数里面正式生成数组(main里面只是定义声明,然后int ***p作为参数传递过去)的话,在mian里面能生成有元素的数组吗?能的话是因为参数是指针型的吗?
追答
这个应该是不能的吧,至少需要传这个p的引用或指向p的指针才可以
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式