首页 > 解决方案 > 使用 malloc() 的局部变量需要多大的内存大小?

问题描述

如果我有一个结构作为局部变量,它只在内部的函数中使用,但它的大小有点大但小于堆栈帧最大大小,我想直接定义它以避免调用 malloc()但我也害怕变量大小的总和超过堆栈帧大小的限制。使用malloc的局部变量的大小有什么标准吗?

标签: coperating-system

解决方案


这当然取决于操作系统,但主观的经验法则是,大约 1 kib 的对象在堆(或 in .data)上比在堆栈上更好。

尽管有些库他们希望许多对象中的一个可能很大,但为了保持一致性,将所有内容都放在堆上。


推荐阅读