其他分享
首页 > 其他分享> > c – 多次调用alloca()会导致堆栈的连续部分?

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