在函数内部初始化的数组不可以直接返回,因为它会在函数调用完随着这个函数的生命周期结束而销毁。
所以需要用malloc()来初始化。以初始化一个n*m数组为例
int** functionName() {
int** as = (int **)malloc(sizeof(int*) * n);
for(int i = 0; i < m; i++) {
as[i] = (int*)malloc(sizeof(int) * m);
}
return as;
}
同样的,如果是结构体
typedef struct AA {
int a;
}A;
AA** functionName() {
AA** as = (AA **)malloc(sizeof(AA*) * n);
for(int i = 0; i < m; i++) {
as[i] = (AA*)malloc(sizeof(AA) * m);
}
return as;
}