C语言中怎么定义动态的数组长度

就是用变量来定义数组长度正常情况下,C语言中的数组长度只能用常量来定义,但是我听别人说可以动态创建,不知道怎么弄。比如我定义了两个变量x,y,并通过scanf对其进行赋值... 就是用变量来定义数组长度

正常情况下,C语言中的数组长度只能用常量来定义,但是我听别人说可以动态创建,不知道怎么弄。

比如我定义了两个变量x,y,并通过scanf对其进行赋值。
之后要用这两个变量定义一个二维数组a[x][y]。

不知道怎么弄。
展开
 我来答
dielsalder
2010-08-19 · TA获得超过3854个赞
知道大有可为答主
回答量:1864
采纳率:50%
帮助的人:2724万
展开全部
这个需求是符合C99标准,只要用支持C99标准的编译器就能通过编译。
比如下面的代码,用GCC就能编译、运行。
#include <stdio.h>
int main()
{
int x = 2, y = 3;
int arr[x][y];
return 0;
}
如果编译器不支持C99标准,
可以用malloc(size_t )这个函数动态分配内存。
百度网友2018359
2015-10-10 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1389万
展开全部
int b = 5; //数组长度为5
int* a=new int[b];
for (int i = 0; i < b; i++) //为数组赋值
{
a[i] = i;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7fa8869
2010-08-19 · TA获得超过755个赞
知道小有建树答主
回答量:622
采纳率:0%
帮助的人:569万
展开全部
这个简单..
你通过malloc分配空间的方式来定义数组哇..

看看这个例程..

int main(void)
{
int *number, n, m, i;

printf("the total numbers is:");
scanf("%d", &n);
printf("back m:");
scanf("%d", &m);

number = (int *)malloc(n * sizeof(int));

printf("input %d integers:", n);
for (i=0; i<n; i++)
{
scanf("%d", &number[i]);
}
}
类似这样
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bnujwch
2010-08-19 · TA获得超过1431个赞
知道小有建树答主
回答量:697
采纳率:100%
帮助的人:598万
展开全部
c语言不支持动态定义数组,但你可以用指针来实现相同的功能,具体参考:
http://baike.baidu.com/view/3761318.htm
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9b7032f81
2010-08-19 · TA获得超过606个赞
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:282万
展开全部
你scanf对其进行赋值,那x,y就是常量了
然后再定义a[x][y]有何不可呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式