c99数组长度规定

原创 2007年09月20日 14:27:00
c99规定数组长度可以为变量,下面的代码合法:
int x ;
int array[x]

标准c++的规定不允许这样(没有具体查,多半我也看不懂c++的标准....)但gcc上面是允许的。
在这种情况下,gcc会调用alloca在栈上分配数据空间,alloca的manual如下:

NAME
       alloca - memory allocator

SYNOPSIS
       #include <alloca.h>

       void *alloca(size_t size);

DESCRIPTION
       The alloca function allocates size bytes of space in the stack frame of
       the caller.  This temporary space is automatically freed when the func-
       tion that called alloca returns to its caller.

RETURN VALUE
       The alloca function returns a pointer to the beginning of the allocated
       space.  If the allocation causes stack overflow, program  behaviour  is
       undefined.

第九章 C99可变长数组VLA详解

http://blog.csdn.net/code_crash/article/details/4854921 [置顶] 第九章 C99可变长数组VLA详解 分类: 数组与指针的艺术2009-...

opwenwrt交叉编译(二)——交叉编译环境的搭建(Ubuntu)

1.初始环境的配置 sudo apt-get update sudo apt-get install git-core build-essential libssl-dev libncurses5-...

CentOS6 上OpenWRT交叉编译

目的不是为了编译固件,一个是编译可执行文件,放倒op的路由器上跑,另一个是安装一些开源软件折腾下(例如ss-lib) 路由设备信息erya@ERYA:~$ cat /proc/cpuinfo sys...

结构体中最后一个数组长度为零

  • 2010年11月07日 11:57
  • 41KB
  • 下载

C/C++ 中如何获取数组长度

C、C++中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) /...

C/C++中如何获取数组长度

c/c++中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?  其中一种方法是使用sizeof(array) /...

不使用sizeof求得数组长度

在c语言中,经常使用sizeof取得数组的长度。
  • bdss58
  • bdss58
  • 2014年11月01日 19:33
  • 748

C++中巧得数组长度和vector的理解

c++中string可以通过string.length()来获得string的长度,当对与一个数组来说就不是这么容易了。如一个int型的数组:int a[] = {1,2,3,5,6,9};如何获得呢...

c语言不同类型返回数组长度用法

C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) /...

delete [] 时如何知道数组长度

在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢? new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c99数组长度规定
举报原因:
原因补充:

(最多只允许输入30个字)