硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1297|回复: 4
收起左侧

[IAR] C99以上引入了VLA 可变数组,这个有什么用呢?

[复制链接]

23

主题

72

回帖

141

积分

初级会员

积分
141
发表于 2024-6-13 16:01:09 | 显示全部楼层 |阅读模式
C99以上引入了VLA 可变数组,这个有什么用呢?是不是可以用变量来指定数组大小,例如:


int  n=10;
char buff[n];
是不是可以这样呢?这么定义拿编译器,再编译阶段是怎么来分配这个数组的内存空间的呢?有了解的么,讨论下
回复

使用道具 举报

219

主题

1109

回帖

1776

积分

至尊会员

More we do, more we can do.

积分
1776
发表于 2024-6-13 18:46:36 | 显示全部楼层
原本要按最大情况下分配空间,支持VLA时可以由参数决定,灵活度和可靠性更高
回复

使用道具 举报

21

主题

481

回帖

544

积分

金牌会员

积分
544
发表于 2024-6-13 21:48:23 | 显示全部楼层
一般用于局部变量,在函数栈分配,大小可以用函数参数指定
回复

使用道具 举报

23

主题

72

回帖

141

积分

初级会员

积分
141
 楼主| 发表于 2024-7-5 09:42:46 | 显示全部楼层
结下贴,是在栈中开辟的空间,这个感觉和malloc一样
回复

使用道具 举报

1

主题

27

回帖

30

积分

新手上路

积分
30
发表于 2024-7-5 23:40:18 | 显示全部楼层
malloc不是在堆?
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 04:20 , Processed in 0.038571 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表