linux下,可以定义“变长数组”?

LeonTown 2010-11-04 11:53:26
如题,
今天在ubuntu环境下,看到别人的代码:

int len;
getlen(&len); // 获得长度
char buf[len]; // 定义“变长数组”!!
...



请问,为什么在linux环境下,上述代码可以通过编译?
...全文
293 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gules 的回复:]

与操作系统无关,与编译器相关,在指定使用C99的情况下支持。
[/Quote]
正解
gules 2010-11-04
  • 打赏
  • 举报
回复
与操作系统无关,与编译器相关,在指定使用C99的情况下支持。
hzhxxx 2010-11-04
  • 打赏
  • 举报
回复

如果是 c++ ,直接用 vector 就可以了,数组应该退役了
shenchenman 2010-11-04
  • 打赏
  • 举报
回复
linux/GCC下的确是支持变长数组,这东西本来就和编译器内部处理有关啊,没什么奇怪的
lconline 2010-11-04
  • 打赏
  • 举报
回复
是滴,与编译器有关,与操作系统无关
ForestDB 2010-11-04
  • 打赏
  • 举报
回复
1、gcc的扩展,即使-ansi/-std=c89也可以这样编译;
2、c99标准了。
mLee79 2010-11-04
  • 打赏
  • 举报
回复
这个是C99标准的规定...
就是 alloca 的马甲... M$VC 用 _alloca 去...
zshtiger2414 2010-11-04
  • 打赏
  • 举报
回复
顶起来
我只知道在VC下好像不支持
过去的我 2010-11-04
  • 打赏
  • 举报
回复
gcc 都可以。。
  • 打赏
  • 举报
回复
看你编译器版本
digu 2010-11-04
  • 打赏
  • 举报
回复
gun gcc 对标准c做了扩展,其中一个扩展就是变长数组。
libinfei8848 2010-11-04
  • 打赏
  • 举报
回复
GCC的确是。。。
freefei 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gules 的回复:]

与操作系统无关,与编译器相关,在指定使用C99的情况下支持。
[/Quote]
的确
第1章 PHP 5基础 1.1 简介 1.1.1 PHP是什么 1.1.2 初步认识PHP代码 1.2 PHP的安装 1.2.1 Linux下安装.Apache和PHP 1.2.2 Windows下安装Apache和PHP 1.3 PHP配置 1.3.1 PHP配置文件 1.3.2 PHP常用配置选项 1.3.3 加载扩展库 1.4 本章小结 第2章 网站开发语法基础 2.1 基本语法 2.2 数据类型 2.2.1 布尔型 2.2.2 整型 2.2.3 浮点型 2.2.4 字符串 2.2.5 数组 2.2.6 对象 2.2.7 资源 2.2.8 NULL 2.2.9 类型转换 2.3 变量 2.3.1 变量的赋值 2.3.2 预定义变量 2.3.3 变量作用域 2.3.4 可变变量 2.4 常量 2.4.1 自定义常量 2.4.2 魔术常量 2.5 表达式 2.6 运算符 2.6.1 算术运算符 2.6.2 字符串运算符 2.6.3 比较运算符 2.6.4 逻辑运算符 2.6.5 位运算符 2.6.6 赋值运算符 2.6.7 数组运算符 2.6.8 类型运算符 2.6.9 错误控制运算符 2.6.10 执行运算符 2.6.11 运算符的优先级 2.7 流程控制 2.7.1 if结构 2.7.2 switch结构 2.7.3 while循环 2.7.4 for循环 2.7.5 foreach语句 2.7.6 declare语句 2.7.7 exit和retunl语句 2.8 包含代码 2.9 本章小结 第3章 函数 3.1 用户自定义函数 3.1.1 函数调用与函数定义 3.1.2 递归函数 3.2 函数的参数 3.2.1 按值传递参数 3.2.2 通过引用传递 3.2.3 默认参数值 3.2.4 可变长度参数列表 3.3 函数返回值 第4章 类与对象 第5章 字符串 第6章 数组 第7章 PHP高级应用技术 第8章 PHP模板 第9章 MySQL快速入门 第10章 MySQL数据库管理 第11章 MySQL5进阶 第12章 文章发布系统 第13章 电子商务系统

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧