C語言如何動態分配二維數組?
使用malloc函數,先分配第一維的大小,然后再循環分配每一維的大小。示例代碼,分配3行4列二維數組:
#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;}/*輸出:0 1 2 31 2 3 42 3 4 5*/
上一篇如何在Java中應用