c语言能定义一个变长的一维数组吗?

2019-07-20 20:49发布

类似unsigned long filesize;
u8 filename[3+filesize+4];




我在keil里定义成
unsigned long filesize=0;
u8 filename[3+filesize+4];
按理说不是固定长度了吗?
怎么还有错误: error:  #28: expression must have a constant value。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
BMN李
1楼-- · 2019-07-21 00:30
内存管理malloc
jermy_z
2楼-- · 2019-07-21 06:11
好像即使define的常数也不行
ianhom
3楼-- · 2019-07-21 09:13
 精彩回答 2  元偷偷看……
czdspeed
4楼-- · 2019-07-21 10:22
定义数组长度好像不能有变量吧,宏也不行。
向楼上的用申请内存的方式处理吧。
Joofee_Elec
5楼-- · 2019-07-21 16:10
 精彩回答 2  元偷偷看……
zhoujianwen
6楼-- · 2019-07-21 19:48
Joofee_Elec 发表于 2016-8-12 11:06
定义为指针,使用malloc开辟空间。
定义为数组,必须指定长度。

指针最多4字节吧

一周热门 更多>