如果我有一个struct作为局部变量,它只在一个函数里面使用但是它的大小有点大但比堆栈帧的最大值小,我想直接定义它以避免花钱 调用malloc()但我也害怕变量大小的总和超过堆栈帧大小的限制。使用malloc是否有局部变量大小的标准?
答案 0 :(得分:1)
这当然取决于操作系统,但一个主观的经验法则是,在堆上(或在browser.js:49 Warning: Material-UI: the value provided `undefined` is invalid
)中,大约1 kib的对象在堆栈上比在堆栈上更好。
虽然有些库他们希望很多对象中的一个可能很大,但为了保持一致性,将所有内容放在堆上。
答案 1 :(得分:0)
如果你需要在堆栈上分配一小部分但未知的编译时内存,请使用alloca()
答案 2 :(得分:0)
以下是您可以做的一些事情: