Chinaunix首页 | 论坛 | 博客
  • 博客访问: 871815
  • 博文数量: 87
  • 博客积分: 3324
  • 博客等级: 中校
  • 技术积分: 1003
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-17 11:37
文章分类

全部博文(87)

文章存档

2014年(3)

2013年(5)

2012年(21)

2011年(13)

2010年(7)

2009年(9)

2008年(4)

2007年(14)

2006年(11)

分类: C/C++

2011-07-20 10:22:10

通常我们在C/C++中定义一个数组的时候,数组的大小一般都是使用常量的。但是从ISO C99标准开始,C语言也支持一种变长数组,也就是数组的大小可以使用变量来制定,而非一定要使用常量。

gcc编译器也已扩展特性的方式支持了此特性,即便是使用ISO C90标准来编译程序的时候。

实际上所谓变长数组,在本质上类似于库函数allca,都是在程序运行的stack上,分配变长的连续空间。当函数调用完成以后,这些空间自动被系统回收。

然而与库函数allca相比,变长数组显然使用起来更为方便和直接。当然二者在使用的时候,都有一点需要特别注意,尤其是在多线程编程的时候,要注意不要使用过大的空间导致栈溢出。

另外一个要注意的是,allca函数在某些编译上可能不支持或者实现的有bug,那么就是可移植性会受到一定程度的影响。
阅读(1120) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~