c - C语言静态分配

标签 c arrays allocation

我有以下代码:

void main ( ) 
{
    int s;
    scanf("%i",&s);
    int a[s];
}

当我尝试编译这段代码时,我没有任何错误!问题是我可以分配一个可变大小的静态数组吗?这个分配是在哪里实现的(在堆栈或堆中)?

谢谢。

最佳答案

这是一个可变长度数组。变长数组是c99标准引入的功能。变长数组只能在 block 作用域中声明,并且具有自动存储期限(不能使用 staticextern 说明符声明)。

关于c - C语言静态分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22282470/

相关文章:

iOS 解析文本文件 Swift

php - 根据 PHP 中的匹配列值合并数组

c - 如何正确检查传递给 malloc() calloc() realloc() 的大小及其返回值?

c - 函数内二维数组的动态分配(使用指针返回分配对象的地址)

c - 如何编写一个在迭代之间变化的字符串?

c - 使用malloc分配内存失败

c - 指针的指针作为函数参数

c - 随机数生成器如何在 C 中工作?

javascript - 是否值得运行两个 While 循环来确定 For 循环的初始起点和迭代次数?

javascript - firefox (9), javascript, 由于大数据文件导致分配大小溢出。有没有办法避免这种情况?