C语言 用指针生成一个三维数组,用main调用另一个函数,该指针作为参数。
不要”数组名赋值给指针“,而是利用定义的指针直接生成三维数组。下午在网上找了很久都没有找到我运行成功了的。看到有说定义:int***p,的,但是没有用。麻烦大神说清楚点~...
不要 ”数组名 赋值给指针“,而是利用定义的指针直接生成三维数组。下午在网上找了很久都没有找到我运行成功了的。看到有说 定义:int *** p,的,但是没有用。麻烦大神说清楚点~谢谢!!!!解决问题的会给分。
不必给出全代码,给出有效的指针定义即可。谢谢! 展开
不必给出全代码,给出有效的指针定义即可。谢谢! 展开
1个回答
展开全部
示例代码:
#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的指针才可以
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询