c – 多次调用alloca()会导致堆栈的连续部分?

如果在特定函数中多次调用alloca()函数,是否可以保证由它分配的所有堆栈段完全形成堆栈内存的连续部分?

解决方法:

is it guaranteed that all the stack segments allocated by it form a contiguous part of stack memory altogether?

不.如果有保证,您可以在其文档中阅读所有相关内容. alloca是一个实现定义的函数(唯一可以告诉你对它有什么保证的是编译器的实现者).

它也是非标准的,不安全的和不可移植的(基本上比使用malloc和C中的free更差).

除非您想知道遗留代码(使用它)的行为方式,否则您只能通过使用它来获得代码质量.

上一篇:从执行上下文角度重新理解.NET(Core)的多线程编程[1]:基于调用链的”参数”传递


下一篇:Python中的可变范围问题