【发布时间】:2014-07-05 20:49:29
【问题描述】:
是否可以解除分配功能?假设你有一个巨大的初始化函数,它只运行一次,在你调用它之后是否可以释放它,并使用额外的存储空间?我主要对 C 感兴趣,但如果该语言提供有趣的行为,请随时为任何其他语言发帖。
我知道函数不是在堆上分配的,因此您可能无法回收它们的内存,但这对我来说似乎是一种浪费。
【问题讨论】:
-
不在标准 C 中。(请记住,C 语言没有任何堆、堆栈或函数“生存”的位置的概念。)
-
@OliCharlesworth 我假设你的意思是堆等依赖于实现?还有“不在标准C中”,非标准C呢?
-
是的,完全正确。不过,您完全有可能在您所运行的任何平台上找到一种非标准的方式来执行此操作。
-
这不是一个答案,但我建议购买更多内存。您的巨大功能可能具有例如1000 行 = 2 000 个字节已编译。不知道你在哪个平台上工作,但是 2 kB 的内存应该不会那么贵。
-
你当然可以做一些动态加载和卸载,大多数现代桌面平台都支持...
标签: function memory-management