用C语言分配动态二维数组(结构体实现)

来源:互联网 发布:dcs常用组态软件 编辑:程序博客网 时间:2024/05/22 01:42
#include<stdio.h>#include<stdlib.h>typedef struct{double **mat;int m;int n;}Matrix;void InitialMatrix(Matrix *T,int m,int n){int i;T->mat=(double**)malloc(m*sizeof(double*));for(i=0;i<m;i++)T->mat[i]=(double*)malloc(n*sizeof(double));T->m=m;// m行T->n=n;// n列}void FreeMatrix(Matrix *T){int i;for(i=0;i<(T->m);i++)free(T->mat[i]);free(T->mat);}void SetMatrix(Matrix *T,int m,int n){int i,j;for(i=0;i<(T->m);i++){for(j=0;j<(T->n);j++)T->mat[i][j]=i+j;}}void PrintMatrix(Matrix *T){int i,j;for(i=0;i<(T->m);i++){for(j=0;j<(T->n);j++)printf(" %3.0f",T->mat[i][j]);printf("\n");}}int main(){Matrix p;int a,b;printf("Please enter the matrix row and column:");scanf("%d%d",&a,&b);InitialMatrix(&p,a,b);SetMatrix(&p,a,b);PrintMatrix(&p);FreeMatrix(&p);return 0;}

0 0