变长数组(VLA)
C语言变长数组(VLA)的用法(非常详细,附带实例) - C语言中文网
- 变长数组的长度在运行时确定(例如通过变量指定),但一旦确定后,其长度在当前函数生命周期内固定不变。 也就是局部用变量指定数组长度。
- 栈上动态分配
- C11 将 VLA 设为可选特性,不是标准C的一部分,部分编译器(MSVC)可能不支持。
- 结构体/联合体中禁用,不能static修饰,不能全局(全局数据需编译时确定大小)
特性 | 变长数组 | 动态内存分配 |
---|---|---|
内存位置 | 栈 | 堆 |
生命周期 | 自动释放(离开作用域) | 需手动释放(free ) |
大小限制 | 受栈空间限制(较小) | 受堆空间限制(较大) |
语法复杂度 | 简单 | 需手动管理 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Min的博客!
评论