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.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

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

线性时间查找数量超过数组长度一半的数

期望线性时间查找数量超过数组长度一半的数思路分析事实上,数量超过数组长度(n)一半的数也就是数组中第n/2大的数。 这道题如果不限制时间复杂度,brute force(通过排序)查找的时间复杂度可达...

对strlen()函数无法正确读取字符串数组长度的原因剖析

对strlen()函数无法正确读取字符串数组长度的原因剖析

数组长度,cout,Onpaint,对话框背景

1、VC++获得数组长度sizeof(array)/sizeof(array[0])2、在VS2005里想要用cout输出,要引进#include   "iostream " using   name...

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

如何申请和释放一个数组 为什么 newdelete new delete 要配对使用 如何申请和释放一个数组?我们经常要用到动态分配一个数组,也许是这样的:string *psa = new stri...

函数传入数组长度

c++编程的时,很多时候,我们需要给给一个函数传入一个数组的长度,不过因为c和c++在传入时,只是将数组的头指针地址(或者引用)传入,我们就无法确知数组长度了。也许有些人表示怀疑,接下来我们来看下面的...

c++求数组长度

转自:http://blog.sina.com.cn/s/blog_5a48dd2d0101cpfl.html 说道求数组长度,可能你首先会想到用以下公式 int a[10] = {...}; si...

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

c++中string可以通过string.length()来获得string的长度,当对与一个数组来说就不是这么容易了。如一个int型的数组:int a[] = {1,2,3,5,6,9};如何获得呢...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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