如果您通读GNU libs文档,可以看到:
一些非GNU系统无法支持alloca,因此它的可移植性较差。
但是,对于
用于有此缺陷的系统。
假设VLAs也不可用,那么alloca()的C模拟看起来如何?

最佳答案

根据alloca()是什么
函数的作用是:在堆栈中分配大小字节的空间
呼叫者的帧此临时空间将自动释放
当调用alloca()的函数返回其调用方时。
实现将是特定于平台的,编译器可能应该注意到这一点,因为生成的代码必须考虑堆栈帧上局部变量的非固定偏移量所以如果你的工具链没有VLA-你就和它无关。

关于c - 在C中模拟`alloca()`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38632346/

10-10 17:14