C语言用函数将二维数组转变为一维数组,下面的代码不报错,但是不能正确显示结果,求大神解答

#include<stdio.h>#include<stdlib.h>int* transport(int **a,int row,int col){ static int len=col*row; int d[len]; for(int i=0;i<row;i++) { for(int j=0;j<col;j++) { d[i*col+j]=a[i][j]; } } return d;} int main(){ int a[2][2]={(1,2),(3,4)}; int **p; *p=a[0]; int *q; q=transport(p,2,2); for(int i=0;i<4;i++) { printf("%d\t",q[i]); }}

函数内的临时数组d退出函数就倍销毁了,你不能把函数内的数组返回给别人用
温馨提示:答案为网友推荐,仅供参考
相似回答