首页 > 代码库 > 【C语言】构造长度可变的二维数组

【C语言】构造长度可变的二维数组

 1 #include <stdio.h> 2 #include <malloc.h> 3 #include <memory.h> 4  5 int getArray(int ***p,int m,int n)//构造一个m*n维数组,并清零 6 { 7     int i; 8     *p=(int **)malloc(sizeof(int*)*m); 9     memset(*p,0,sizeof(int*)*m);10     if(NULL==p)11     {12         printf("memory error!");13         return -1;14     }15     for(i=0;i<n;i++)16     {17         (*p)[i]=(int*)malloc(sizeof(int)*n);18         memset((*p)[i],0,sizeof(int)*n);19         if(NULL==(*p)[i])20         {21             printf("memory error!");22             return -1;23         }24     }25     return 0;26 }27 int main()28 {29     30     int n;//输入数31     int **p=NULL;//二级指针,留作可变长度二维数组用32     printf("input a number:");33     scanf("%d",&n);34     if((n<0)||(n>2147483647))//检查n是否溢出35     {36         printf("invalid number!");37         return -1;38     }39     /*构造一个n*n维数组,并清零*/40     state=getArray(&p,n,n);41         42         return 0;43 }

 

【C语言】构造长度可变的二维数组