【发布时间】:2013-07-26 03:11:02
【问题描述】:
基本上我有一个函数,我想根据一个整数变量推送一定数量的堆栈空间。所以我可以让函数一次占用 3 个字节,然后再占用 5 或 6 个字节。我需要将它放在堆栈而不是堆上,有谁知道如何通过将程序集插入我的代码或其他东西来做到这一点?
void Bar::foo(int alloc){
//allocate data on stack the size of alloc
}
【问题讨论】:
-
你不只是通过改变堆栈指针来增加堆栈吗?
-
这显然是特定于平台的事情。在 Linux 上,有alloca。也可以考虑Why is alloca not considered good practice。
-
您不能在函数中执行此操作,因为返回时堆栈会重置。