ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

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

[复制链接]
130|24
 楼主 | 2020-1-20 23:29 | 显示全部楼层 |阅读模式
char a[]编译的时候会有警告,如果想定义一个数组,但不确定有多少个变量的话怎么定义数组?

使用特权

评论回复
| 2020-1-20 23:32 | 显示全部楼层
只能用指针

使用特权

评论回复
| 2020-1-20 23:36 | 显示全部楼层
如果你的数据最多有100个 你可以选择定义数组大小为200

使用特权

评论回复
| 2020-1-20 23:38 | 显示全部楼层
这样没有用的可以用零填充

使用特权

评论回复
| 2020-1-20 23:40 | 显示全部楼层
当然还有一个办法就是用指针喽

使用特权

评论回复
| 2020-1-20 23:43 | 显示全部楼层
去搜索一下 C语言可变数组,有你需要的答案

使用特权

评论回复
 楼主 | 2020-1-20 23:46 | 显示全部楼层
感谢各位,我看了下往上有些程序,直接用一个变量表示下标,这样应该也可以吧,例如这样
char i;
char a[i];

使用特权

评论回复
| 2020-1-20 23:50 | 显示全部楼层
如果你没有初始化,肯定不行。

使用特权

评论回复
| 2020-1-20 23:54 | 显示全部楼层

c语言也不许你这么干。要么定义大小,要么定时时候初始化。

使用特权

评论回复
| 2020-1-20 23:56 | 显示全部楼层
需要定义时候给大小或者用数组

使用特权

评论回复
| 2020-1-20 23:58 | 显示全部楼层
C99已经支持变长数组了,而且函数返回已经自动释放了,比malloc方便些;

使用特权

评论回复
| 2020-1-21 08:55 | 显示全部楼层
楼上是正解,C99已经支持变长数组了,把编译器的C99选项勾上,或者手动添加命令 --c99

使用特权

评论回复
| 2020-1-21 10:04 | 显示全部楼层
定义数组,还是乖乖的指定大小吧
举个极端的例子,万一你的数组长度好几亿呢,怎么也得能放得下才行啊。
即便是定义是不报错,但是执行程序时可能会溢出会出错,这样的代码不安全。
代码千万条,安全第一条;代码不规范,码农两行泪。

使用特权

评论回复
| 2020-1-21 14:42 | 显示全部楼层
按最大可能来定义也是个方法

使用特权

评论回复
| 2020-1-21 20:59 | 显示全部楼层
不行就写0.+∞

使用特权

评论回复
 楼主 | 2020-1-21 21:15 | 显示全部楼层
这个要看他用的编译器是不是支持C99,

使用特权

评论回复
| 2020-1-21 21:20 | 显示全部楼层

IAR支持这个吗,楼主随便写个helloWord试试看。

使用特权

评论回复
| 2020-1-21 21:22 | 显示全部楼层

iar、mdk肯定支持的
不支持的设置下就可以了

使用特权

评论回复
| 2020-1-21 21:24 | 显示全部楼层

需要在初始化里处理

使用特权

评论回复
| 2020-1-21 21:27 | 显示全部楼层
char型是-128~127,是不是i也就是这么多

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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