2019独角兽企业重金招聘Python工程师标准>>>

代码一:

const int x=5;
int num[x];

代码二:

int x=5;
int num[x];

代码一能够在g++, vc6.0, vs2010上编译通过。
代码二能够在g++上通过,而在vc6.0,vs2010上通不过。

现在明白怎么回事了。g++是支持变长数组的(VLA),变长数组是c++ C99标准的新特性。C99是GNU主导的标准,M$完全无视,意图压制C99的普及度,所以vc6.0,vs2010,vs2012,包括vs2014(如果有的话),以后的vs都不会支持这个特性。这里鄙视M$一下!
正因为如此,许多跨平台软件都不敢上C99特性,否则在Windows平台只能用gcc编译,这会导致体积和性能都受到影响 。

如果要考虑通用性的话,还是用动态数组吧!

动态数组:

int *num=new int[x]();

转载于:https://my.oschina.net/u/923087/blog/279167

通过变长数组(VLA)来看编译器的不同相关推荐

  1. C/C++之变长数组(VLA)和可伸缩型数组成员

    数组主要用来处理一系列同类型的数据集合,在C/C++中应用十分广泛.其中有两种特殊的数组,变长数组(VLA)和可伸缩型数组成员,应用得当的话,会非常方便. ##变长数组(VLA) 在多维数组中,数组的 ...

  2. 第六章 C语言数组_C语言变长数组:使用变量指明数组的长度

    在<C语言的三套标准:C89.C99和C11>一节中我们讲到,目前经常使用的C语言有三个版本,分别是 C89.C99 和 C11.C89(也称 ANSI C)是较早的版本,也是最经典的版本 ...

  3. C99中的变长数组(VLA)

    处理二维数组的函数有一处可能不太容易理解,数组的行可以在函数调用的时候传递,但是数组的列却只能被预置在函数内部.例如下面这样的定义: #define COLS 4 int sum3d(int ar[] ...

  4. MODE —— 计算10个分数的平均值(知识点: 数组 变长数组)

    数组是一个数目固定,类型相同的数据项,数组中的数据项称为元素.数组中的元素都是int.long.或者其他类型. 声明一个数组时,要给编译器提供为数组分配内存所需要的所有信息,包括值的类型(决定每个元素 ...

  5. c99变长数组_你学过数组,那你知道柔性数组吗?

    1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区struct max_buffer{ ...

  6. c++什么时候数组溢出_C语言,营养丰富的C语言五,变长数组不是动态数组

    大家好,感谢朋友的支持阅读和关注,虽然我提出的这些小知识点看得人很少,但是每涨一个阅读和关注,都能让我开心很久,所以再次感谢一起学习的朋友们. 查余补漏: 在前几次的讲解中,有朋友提出C语言的内存分配 ...

  7. c语言变长数组参数,使用gdb跟踪C语言中变长数组的实现

    项目的代码中出现的一个问题,问题的表现是,在一个函数中使用到了变长数组,而对超过这个数组 范围的一个赋值,导致了数组首地址为空. 我把这个问题抽出来形成了一个示例函数,在i386下也出现类似的问题,代 ...

  8. C语言高级教程-C语言数组(六):变长数组

    C语言高级教程-C语言数组(六):变长数组 一.本文的编译环境 二.一维数组在执行期间确定长度 三.二维数组在执行期间确定长度 四.一维变长数组实例 五.完整程序 5.1 Main.h 文件程序 5. ...

  9. 变长数组-C99新特性

    C99允许我们在任何地方定义变量,并且支持不定长数组的定义,即,我们可以使用变量来定义我们的数组.这就使得我们可以在程序运行过程中根据实际需要来定义数组长度. 变长数组被当做特殊的局部变量,相对于普通 ...

最新文章

  1. DAG情况下如何移动数据库路径
  2. Hive 0.13 数据类型
  3. linux mysql5.7启动失败/tmp/mysql.sock ?
  4. servlet和jsp学习总结
  5. EntityFramework实体默认值遇到Oracle自增主键
  6. POJ 3471 Integral Roots(素数、因数)
  7. 【转】ETL介绍与ETL工具比较
  8. 读书:梭罗的《瓦尔登湖》
  9. linux kali局域网远程桌面,kali使用rdesktop连接Windows远程桌面
  10. fiddler软件抓包工具超详细配置方法
  11. 大数据行业热门岗位有哪些
  12. C语言高级用法---container_of()
  13. UERANSIM的使用
  14. asn.1 rsa java_android - RSA公钥生成失败:“错误:0c0000be:ASN.1编码例程:OPENSSL_internal:WRONG_TAG” - 堆栈内存溢出...
  15. MLDonkey,比aMule好的BT软件
  16. 让你的LCD1602显示用户自定义字符 Arduino-LiquidCrystal库的createChart()介绍
  17. uniapp 使用在线 iconfont 图标
  18. 2008胡润中国富豪榜榜单前100名
  19. XIV(3)--Read/Write Operations
  20. android9.0官方下载,vivo正式带来Android 9.0公测版!

热门文章

  1. 图表添加特定横轴数据_Excel图表学习61: 编写一个给多个数据系列添加趋势线的加载宏...
  2. FPGA之道(46)数字电路中的隐患
  3. C_数据结构_链式二叉树
  4. 配置一台路由器,两台电脑的重点
  5. Python进阶02 文本文件读写
  6. 这是一篇“团队”博客
  7. 最新宣布:Intuit和微软公司就Intuit合作平台的最新版Windows Azure SDK扩大合作关系...
  8. 29、C++ Primer 4th 笔记,异常处理
  9. .NET中,字符串首字母大写的方法
  10. 浅议DAS、NAS、SAN三种存储架构