[C语言] 元素为结构体的二位数组

在函数内部初始化的数组不可以直接返回,因为它会在函数调用完随着这个函数的生命周期结束而销毁。
所以需要用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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容