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更差).
除非您想知道遗留代码(使用它)的行为方式,否则您只能通过使用它来获得代码质量.
标签:c,memory-management,callstack 来源: https://codeday.me/bug/20190825/1720971.html