打印
[STM32F1]

不确定有多少个变量的话怎么定义数组?

[复制链接]
319|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
juventus9554|  楼主 | 2022-1-2 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
char a[]编译的时候会有警告,如果想定义一个数组,但不确定有多少个变量的话怎么定义数组?

使用特权

评论回复
沙发
huangchui| | 2022-1-2 10:19 | 只看该作者
只能用指针

使用特权

评论回复
板凳
yszong| | 2022-1-2 10:20 | 只看该作者
如果你的数据最多有100个 你可以选择定义数组大小为200

使用特权

评论回复
地板
pengf| | 2022-1-2 10:22 | 只看该作者
这样没有用的可以用零填充

使用特权

评论回复
5
dengdc| | 2022-1-2 10:24 | 只看该作者
当然还有一个办法就是用指针喽

使用特权

评论回复
6
zhenykun| | 2022-1-2 10:26 | 只看该作者
去搜索一下 C语言可变数组,有你需要的答案

使用特权

评论回复
7
juventus9554|  楼主 | 2022-1-2 10:29 | 只看该作者
感谢各位,我看了下往上有些程序,直接用一个变量表示下标,这样应该也可以吧,例如这样
char i;
char a[i];

使用特权

评论回复
8
juventus9554|  楼主 | 2022-1-2 10:34 | 只看该作者
如果你没有初始化,肯定不行。

使用特权

评论回复
9
chuxh| | 2022-1-2 10:35 | 只看该作者
c语言也不许你这么干。要么定义大小,要么定时时候初始化。

使用特权

评论回复
10
xxrs| | 2022-1-2 10:37 | 只看该作者
需要定义时候给大小或者用数组

使用特权

评论回复
11
yinxiangh| | 2022-1-2 10:48 | 只看该作者
C99已经支持变长数组了,而且函数返回已经自动释放了,比malloc方便些;

使用特权

评论回复
12
pengf| | 2022-1-2 10:49 | 只看该作者
楼上是正解,C99已经支持变长数组了,把编译器的C99选项勾上,或者手动添加命令 --c99

使用特权

评论回复
13
jiajs| | 2022-1-2 10:50 | 只看该作者
定义数组,还是乖乖的指定大小吧

使用特权

评论回复
14
jlyuan| | 2022-1-2 10:52 | 只看该作者
举个极端的例子,万一你的数组长度好几亿呢,怎么也得能放得下才行啊。

使用特权

评论回复
15
llljh| | 2022-1-2 10:54 | 只看该作者
即便是定义是不报错,但是执行程序时可能会溢出会出错,这样的代码不安全。

使用特权

评论回复
16
dengdc| | 2022-1-2 10:56 | 只看该作者
代码千万条,安全第一条;代码不规范,码农两行泪。

使用特权

评论回复
17
jlyuan| | 2022-1-2 10:59 | 只看该作者
按最大可能来定义也是个方法

使用特权

评论回复
18
wuhany| | 2022-1-2 11:01 | 只看该作者
不行就写0.+∞

使用特权

评论回复
19
juventus9554|  楼主 | 2022-1-2 11:04 | 只看该作者
这个要看他用的编译器是不是支持C99,

使用特权

评论回复
20
huangchui| | 2022-1-2 11:08 | 只看该作者
IAR支持这个吗,楼主随便写个helloWord试试看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

粉丝