gpt4 book ai didi

c - 不使用malloc就不能在运行时分配内存吗?

转载 作者:行者123 更新时间:2023-11-30 20:25:47 24 4
gpt4 key购买 nike

main()
{
int n;
scanf("%d",&n);
char a[n];
}

在这种情况下,我们在运行时没有将内存分配给“a”,那么为什么要使用 malloc?

最佳答案

旧的 C 标准中不允许

char a[n]。它在 C99 中是允许的,但仅限于自动变量(即在堆栈上,如您的示例中所示)。例如,如果您想要一个全局变量,则需要使用malloc等。等人。符合标准。

编辑以提供一些证据

有一个helpful series of articles关于 C 中的可变长度数组。在第二篇文章中,“VLA 必须是 block 中的自动(而不是静态或外部)变量。”

关于c - 不使用malloc就不能在运行时分配内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27584489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com