C语言两种产生矩阵的方法
用malloc生成m*n的矩阵的两种方法:
1:使用指针数组
1 int** create_matrix(int m, int n) 2 { 3 int **mat = (int**) malloc (sizeof(int*) * m); 4 int i; 5 for(i=0;i<m;i++) 6 { 7 mat[i] = (int*)malloc(sizeof(int)*n); 8 } 9 return mat; 10 }
获取元素(i,j)的值: *(*(mat+i)+j)
获取元素(i,j)的地址:*(mat+i)+j
2.使用一维数组:
1 int * create_matrix_2(int m, int n) 2 { 3 int *mat = (int*) malloc(sizeof(int) * m * n); 4 return mat; 5 }
获取元素(i,j)的值: *(mat+i*n+j)
获取元素(i,j)的地址: mat+i*n+j