【c語言】動態開闢一個二維陣列
阿新 • • 發佈:2019-02-20
// 動態開闢一個二維陣列 #include <stdio.h> #include <stdlib.h> int main() { int i = 0; int j = 0; int line = 0; int row = 0; int **p = NULL; printf("輸入行數:"); scanf("%d", &line); printf("\n"); printf("輸入列數:"); scanf("%d", &row); printf("\n"); // 申請全部行的首指標 p = (int **)malloc(line * sizeof(int *)); if (NULL == p) { return; } for (i = 0; i < line; i++) { //申請列的指標 *(p + i) = (int *)malloc(row *sizeof(int) ); if (*(p + i) == NULL) { return; } } // 初始化陣列 for (i = 0; i < line; i++) { for(j = 0; j < row; j++) { p[i][j] = i + 1; } } // 輸出 for (i = 0; i < line; i++) { for(j = 0; j < row; j++) { printf("%d ", p[i][j]); } } printf("\n"); // 釋放記憶體 for (i = 0; i < line; i++) { free(*(p + i)); p[i] = NULL; } free(p); p = NULL; return 0; }