打个比方,输入两个数10,6。然后需要存放下面输入的10乘6组数据,要怎么弄?如果是6个含有10个字母的字符串呢?最好先讲一维的怎么弄,就是输入10,然后要存10个数据 请讲简要点,我以前弄过的现在忘记了而已,大概说一下不用把代码给我看
主要要的就是二维的…是不是一定要用malloc啊?
第1个回答 推荐于2016-01-24
动态数组当然要自己在堆中申请空间啊,具体代码是这样的
int **p;
p=(int **)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
p[i]=(int *)malloc(sizeof(int)*n);
这样就创建了一个动态的二维数组p[n][n]。本回答被提问者采纳
int **p;
p=(int **)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
p[i]=(int *)malloc(sizeof(int)*n);
这样就创建了一个动态的二维数组p[n][n]。本回答被提问者采纳
第2个回答 2011-08-23
动态一维数组建立方法:
int *arr,size;
scanf("%d",&size);
arr = (int *)malloc(sizeof(int) * size);
二维的貌似要二级指针 我没把握 怕写错 只能提供建议~~
int *arr,size;
scanf("%d",&size);
arr = (int *)malloc(sizeof(int) * size);
二维的貌似要二级指针 我没把握 怕写错 只能提供建议~~
第3个回答 2019-05-27
动态数组当然要自己在堆中申请空间啊,具体代码是这样的
int
**p;
p=(int
**)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
p[i]=(int
*)malloc(sizeof(int)*n);
这样就创建了一个动态的二维数组p[n][n]。
int
**p;
p=(int
**)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
p[i]=(int
*)malloc(sizeof(int)*n);
这样就创建了一个动态的二维数组p[n][n]。
第4个回答 2011-08-23
如果编译时知道数组大小,可以直接声明该大小的数组。
如果数组在运行时才能决定大小,则必须动态分配,一般应使用malloc为其分配空间。
如果数组在运行时才能决定大小,则必须动态分配,一般应使用malloc为其分配空间。