求助,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; 展开
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; 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询