怎么实现C语言里面数组的动态分配?
如果我不知道这个数组究竟有多少个元素,比如a[m][n],m和n的值都是不知道的,我要怎么定义这个数组?怎么用malloc给它分配空间?请给出代码给我参考~谢谢!...
如果我不知道这个数组究竟有多少个元素,比如a[m][n],m和n的值都是不知道的,我要怎么定义这个数组?怎么用malloc给它分配空间?
请给出代码给我参考~谢谢! 展开
请给出代码给我参考~谢谢! 展开
4个回答
展开全部
1 定义指针。
2 使用malloc函数分配内存。
3 对数组进行访问即可。
对于一维动态数组,直接定义一维指针,并分配内存空间即可。
比如int类型的10个元素动态数组,写作
int *a;
a = (int *)malloc(sizeof(int) * 10);
如果是多维数组,需要从高维向低维逐层分配。如二维数组10*100空间。
int **a;
int i;
a = (int **) malloc(sizeof(int *) * 10); // 先分配10个int*的空间。
for(i = 0; i < 100; i ++)
a[i] = (int *)malloc(sizeof(int) * 100); // 对于每个int*,分配100个元素的空间。
2 使用malloc函数分配内存。
3 对数组进行访问即可。
对于一维动态数组,直接定义一维指针,并分配内存空间即可。
比如int类型的10个元素动态数组,写作
int *a;
a = (int *)malloc(sizeof(int) * 10);
如果是多维数组,需要从高维向低维逐层分配。如二维数组10*100空间。
int **a;
int i;
a = (int **) malloc(sizeof(int *) * 10); // 先分配10个int*的空间。
for(i = 0; i < 100; i ++)
a[i] = (int *)malloc(sizeof(int) * 100); // 对于每个int*,分配100个元素的空间。
展开全部
/*
这是一维数组,二维数组类似
int **p= (int**)malloc(m*sizeof(int*) );
int i ;
for(i = 0; i < m; i++)
{
p[i] = (int*)malloc(n*sizeof(int));
}
vc6.0中通过
*/
#include <stdio.h>
#include <malloc.h>
void main()
{
int a=0;
int i=0;
int *p;
printf("输入数组的大小:");
scanf("%d",&a);
p=(int*)malloc(a*sizeof(int));
for(i=0;i<a;i++)
{
printf("p[%d]:",i);
scanf("%d",&p[i]);
}
printf("\n");
for(i=0;i<a;i++)
{
printf("p[%d]=%d\n",i,p[i]);
}
printf("\n");
}
这是一维数组,二维数组类似
int **p= (int**)malloc(m*sizeof(int*) );
int i ;
for(i = 0; i < m; i++)
{
p[i] = (int*)malloc(n*sizeof(int));
}
vc6.0中通过
*/
#include <stdio.h>
#include <malloc.h>
void main()
{
int a=0;
int i=0;
int *p;
printf("输入数组的大小:");
scanf("%d",&a);
p=(int*)malloc(a*sizeof(int));
for(i=0;i<a;i++)
{
printf("p[%d]:",i);
scanf("%d",&p[i]);
}
printf("\n");
for(i=0;i<a;i++)
{
printf("p[%d]=%d\n",i,p[i]);
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<malloc.h>
int **a = (int**)malloc(sizeof(int*) *m);
int i ;
for(i = 0; i < m; i++)
{
a[i] = (int*)malloc(sizeof(int) *n);
}
int **a = (int**)malloc(sizeof(int*) *m);
int i ;
for(i = 0; i < m; i++)
{
a[i] = (int*)malloc(sizeof(int) *n);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全都malloc不free?有你们的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询