C语言变长数组(VLA)的用法(非常详细,附带实例) - C语言中文网

  • 变长数组的长度在运行时确定(例如通过变量指定),但一旦确定后,其长度在当前函数生命周期内固定不变。 也就是局部用变量指定数组长度。
  • 栈上动态分配
  • C11 将 VLA 设为可选特性,不是标准C的一部分,部分编译器(MSVC)可能不支持。
  • 结构体/联合体中禁用,不能static修饰,不能全局(全局数据需编译时确定大小)
特性 变长数组 动态内存分配
内存位置
生命周期 自动释放(离开作用域) 需手动释放(free
大小限制 受栈空间限制(较小) 受堆空间限制(较大)
语法复杂度 简单 需手动管理