二维数组动态分配【数据结构-朱战立】
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <malloc.h> 4 5 /*分配二维数组的内存空间*/ 6 int fenpei(int row, int col) 7 { 8 int i; 9 int **array; 10 11 if ((array = (int **)malloc(row *sizeof (int *))) == NULL) 12 { 13 getchar(); 14 exit(0); 15 } 16 for (i = 0; i < row; i++)/*分配行内存空间*/ 17 { 18 if ((array[i]=(int*)malloc(col*sizeof(int)))==NULL) 19 { 20 getchar(); 21 exit(0); 22 } 23 } 24 return array; 25 } 26 27 /*撤销内存*/ 28 void Destroy(int **array, int row) 29 { 30 int i; 31 for ( i = 0; i < row; i++) 32 { 33 free(array[i]); 34 } 35 free(array); 36 } 37 38 /*主函数*/ 39 int main() 40 { 41 int i, j; 42 int row = 10, col = 10; 43 int **array; 44 45 array=fenpei(row,col); 46 for ( i = 1; i <row; i++) 47 { 48 for ( j = 1; j <col; j++) 49 { 50 array[i][j] = i*j; 51 } 52 } 53 for ( i = 1; i < row; i++) 54 { 55 for ( j = 1; j < col; j++) 56 { 57 printf("%d ", array[i][j]); 58 } 59 printf("\n"); 60 } 61 Destroy(array, row); 62 getchar(); 63 return 0; 64 }