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 }

 

posted on 2014-09-10 16:26  Arigatou  阅读(1869)  评论(0编辑  收藏  举报