数组 怎么变成未知的啦

[复制链接]
查看11 | 回复1 | 2008-10-26 08:43:14 | 显示全部楼层 |阅读模式
现定义个数组int emu[]={100,50,20,10,5,2,1}
以及它的元素个数int arra_size =sizeof(emu)/sizeof(*emu);
要在另一个数组中使用它的个数int num[arra_size];
编译的时候为什么通不过,以下是出错的结果,共3条都是指向int num[arra_size]的:
1.expected constant expression
2. cannot allocate an array of constant size 0
3. 'num' : unknown size
好像是说数组未知长度,可是那个arra_size不是已经是个明确的数了吗(arra_size=7)

回复

使用道具 举报

千问 | 2008-10-26 08:43:14 | 显示全部楼层
因为arra_size是变量,只有程序运行的时候执行到arra_size =sizeof(emu)/sizeof(*emu);这条语句的时候才知道它等于7,编译的时候是不知道的,所以编译器不知道给num数组分配多大空间,要么用常量分配数组,要么使用动态分配。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行