C有stackalloc函数吗?

Posted

技术标签:

【中文标题】C有stackalloc函数吗?【英文标题】:Is there a stackalloc function for C? 【发布时间】:2012-08-23 03:46:01 【问题描述】:

是否有用 C 实现的 stackalloc 函数,允许您在堆栈上分配可变长度数组,如 stackalloc in C#?

【问题讨论】:

【参考方案1】:

alloca,但它是非标准的。此外,从 C99 开始,还有一个名为“可变长度数组”的功能。

int n;
scanf("%d", &n);
int v[n]; /* Will fail badly if n is large. */

谨慎使用并且使用较小的值 VLA 可能非常好。

【讨论】:

谢谢,谷歌让我失望了,因为我基本上认为它会被称为 stackalloc,然后搜索了 stackalloc,我只能看到 C# :) 另外,我曾尝试使用 VLA,但它们不起作用(在 VS2010 上!)。如果标准10年后还不支持,那我就不知道了。 @satuon 不,Visual Studio 对 C99 的支持非常有限。【参考方案2】:

alloca 有点像这样,但你需要非常小心地使用它。

【讨论】:

以上是关于C有stackalloc函数吗?的主要内容,如果未能解决你的问题,请参考以下文章

C语言库函数里有线性表基本操作函数吗?

C 有函数覆盖吗? [复制]

C 函数可以有多个签名吗? [复制]

C语言外部函数和函数调用有大的区别吗???

如何使用 Span<T> 和 stackalloc 创建临时小列表

能列举些C语言中比较常见重要库函数的用法吗?