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

posted @ 2014-06-02 18:10  永久指针  阅读(1858)  评论(0编辑  收藏  举报