[应用相关] 不确定有多少个变量的话怎么定义数组?

[复制链接]
1165|24
 楼主| juventus9554 发表于 2020-1-20 23:29 | 显示全部楼层 |阅读模式
char a[]编译的时候会有警告,如果想定义一个数组,但不确定有多少个变量的话怎么定义数组?
llia 发表于 2020-1-20 23:32 | 显示全部楼层
只能用指针
wangzsa 发表于 2020-1-20 23:36 | 显示全部楼层
如果你的数据最多有100个 你可以选择定义数组大小为200
huwr 发表于 2020-1-20 23:38 | 显示全部楼层
这样没有用的可以用零填充
wenfen 发表于 2020-1-20 23:40 | 显示全部楼层
当然还有一个办法就是用指针喽
zwll 发表于 2020-1-20 23:43 | 显示全部楼层
去搜索一下 C语言可变数组,有你需要的答案
 楼主| juventus9554 发表于 2020-1-20 23:46 | 显示全部楼层
感谢各位,我看了下往上有些程序,直接用一个变量表示下标,这样应该也可以吧,例如这样
char i;
char a[i];
xxrs 发表于 2020-1-20 23:50 | 显示全部楼层
如果你没有初始化,肯定不行。
chuxh 发表于 2020-1-20 23:54 | 显示全部楼层

c语言也不许你这么干。要么定义大小,要么定时时候初始化。
xxrs 发表于 2020-1-20 23:56 | 显示全部楼层
需要定义时候给大小或者用数组
yinxiangh 发表于 2020-1-20 23:58 | 显示全部楼层
C99已经支持变长数组了,而且函数返回已经自动释放了,比malloc方便些;
sonicll 发表于 2020-1-21 08:55 | 显示全部楼层
楼上是正解,C99已经支持变长数组了,把编译器的C99选项勾上,或者手动添加命令 --c99
toofree 发表于 2020-1-21 10:04 | 显示全部楼层
定义数组,还是乖乖的指定大小吧
举个极端的例子,万一你的数组长度好几亿呢,怎么也得能放得下才行啊。
即便是定义是不报错,但是执行程序时可能会溢出会出错,这样的代码不安全。
代码千万条,安全第一条;代码不规范,码农两行泪。
ayb_ice 发表于 2020-1-21 14:42 | 显示全部楼层
按最大可能来定义也是个方法
lxs0026 发表于 2020-1-21 20:59 | 显示全部楼层
不行就写0.+∞
 楼主| juventus9554 发表于 2020-1-21 21:15 | 显示全部楼层
这个要看他用的编译器是不是支持C99,
dingy 发表于 2020-1-21 21:20 | 显示全部楼层

IAR支持这个吗,楼主随便写个helloWord试试看。
yinxiangh 发表于 2020-1-21 21:22 | 显示全部楼层

iar、mdk肯定支持的
不支持的设置下就可以了
xxrs 发表于 2020-1-21 21:24 | 显示全部楼层

需要在初始化里处理
wangpe 发表于 2020-1-21 21:27 | 显示全部楼层
char型是-128~127,是不是i也就是这么多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部