小编use*_*509的帖子

C中堆栈上的动态数组分配

我昨天刚做了一个实验,发现一些令人困惑的事情:

#include <stdio.h>

int main()
{
    int j;
    scanf("%d",&j);
    const int i = j;
    int arr[i];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

j从键盘读取数字,它用于arr在堆栈上分配数组.

编译器在编译时甚至不知道数组的大小(将j初始化为0?),但没有编译错误.这怎么可能?

c c99 variable-length-array c11

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

c11 ×1

c99 ×1

variable-length-array ×1