C语言中二维数组如何申请动态分配内存


C语言中二维数组如何申请动态分配内存:

使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小

#include <stdio.h> 
#include <malloc.h> 

int main() { 

    int **a; 
    int i, j; 
    a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 
    for (i = 0; i < 3; ++i){//为每列分配4个大小空间 
        a[i] = (int*)malloc(sizeof(int)*4); 
    } 
    //初始化 
    for (i = 0; i < 3; ++i){ 
        for (j = 0; j < 4; ++j){ 
            a[i][j] = i+j; 
        } 
    } 
    //输出测试 
    for (i = 0; i < 3; ++i){ 
        for (j = 0; j < 4; ++j){ 
            printf ("%d ", a[i][j]); 
        } 
        printf ("\n"); 
    } 
    //释放动态开辟的空间 
    for (i = 0; i < 3; ++i){ 
        free(a[i]); 
    } 
    free(a); 
    return 0; 
} 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM