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; }