求助,c语言指向指针的指针传递到函数里开辟空间后应该怎么返回?

我是想动态开辟一个二维数组,故用指针,因为直接用数组维数会被限定,我想知道大家平时都是习惯怎么写?新手求指教了~下面贴上自己的代码,为什么函数返回后指针没能返回~~结果指... 我是想动态开辟一个二维数组,故用指针,因为直接用数组维数会被限定,我想知道大家平时都是习惯怎么写?新手求指教了~下面贴上自己的代码,为什么函数返回后指针没能返回~~结果指针又变野指针了

void main() {
int **p,row,rank;
printf("p=%d",p);
initMaze(p,row,rank);
printf("p=%d",p);
}
void initMaze(int **p,int& row,int& rank) {
printf("Please input row m\n");
scanf("%d",&row);
printf("Please input rank\n");
scanf("%d",&rank);
p = (int**)malloc(row*sizeof(int*));
for(int i=0;i<row;i++) {
*(p+i) = (int*)malloc(rank*sizeof(int));
}
for(i=0;i<row;i++) {
for(int j=0;j<rank;j++) {
scanf("%d",&(*(*(p+i)+j)));
}
}
printf("Maze:\n");
for(i=0;i<row;i++) {
for(int j=0;j<rank;j++) {
printf("%3d",*(*(p+i)+j));
}
printf("\n");
}
printf("p=%d",p);
return p;
}
没有最后一句 return p;
展开
 我来答
徐庆超33
2012-08-07 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:141万
展开全部
传递二维指针的地址进去,这样在initMaze函数中指针就要变成三维的,你懂得
更多追问追答
追问
谢谢,确实成功了,但是感觉挺别扭的int ***p,再请问下一般你是怎么做的,对于这种数组空间开辟,我感觉自己的不规范
追答
你应该是个学生吧,不要纠结于这种问题,我一开始也是老是纠结于这种问题,其实在工作中直接给个空间足够用的数组,我见到的都是这么干的,除非开发的程序对内存要求很高呢

搞定了记得给分 哈哈哈
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式