标签: c
main() { int n; scanf("%d",&n); char a[n]; }
在这种情况下,我们不是在运行时将内存分配给'a',那么为什么要使用malloc ??
答案 0 :(得分:1)
char a[n]。它在C99中是允许的,但仅适用于自动变量(即在堆栈中,如在您的示例中)。如果你想要一个全局变量,你需要使用malloc et。人。遵守标准。
char a[n]
malloc
编辑提供一些证据
C中有关于可变长度数组的helpful series of articles。从第二篇文章开始,“VLA必须是自动的(与静态或块中的变量。“