Vc下的一点小疑问

tomatobin 2011-02-28 10:34:55
int total;cin>>total;int ar[total];

这样的代码为什么在Vc下编译不过,而在code blocks、dev c++都以通过呢?
...全文
153 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
futurepi 2011-03-01
  • 打赏
  • 举报
回复
数组的大小要固定,,new才支持动态大小的数组
huaweiheart1 2011-03-01
  • 打赏
  • 举报
回复
很明显,是编译器的差异。
nanchangniat 2011-02-28
  • 打赏
  • 举报
回复
是用动态数组。
haogeai123 2011-02-28
  • 打赏
  • 举报
回复
1L和2L已经解决了问题
飞天御剑流 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 tomatobin 的回复:]
C/C++ code
int total;cin>>total;int ar[total];

这样的代码为什么在Vc下编译不过,而在code blocks、dev c++都以通过呢?
[/Quote]

gcc和g++默认把C99的一些特性例如VLA可变长数组作为自己的编译器扩展了,这些扩展默认是打开的,你那个代码就是VLA,你只要加上-pedantic和-ansi移除GNU扩展并执行严格的标准,就能看见效果了。
hongwenjun 2011-02-28
  • 打赏
  • 举报
回复
VC 6.0 的C++编译器 不支持 部分新的C++标准吧
code blocks、dev c++,这些都是使用 GCC 编译器
GCC 编译器 版本更新比较快
無_1024 2011-02-28
  • 打赏
  • 举报
回复
VC不能这样来分配数组空间 可以用new来动态分配内存空间
int total;cin>>total;
int *ar = new int[total];
yyg990441 2011-02-28
  • 打赏
  • 举报
回复
VC6不支持变长数组

64,648

社区成员

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

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