可以在c++中释放函数吗?



我最近被告知函数不能被释放,但毕竟它们是指令,确实占用一些内存,对吗?就像构造函数和析构函数的工作原理一样。那么有没有一种方法可以释放函数呢?

大量程序内存是"静态"分配的。(可执行代码,全局变量,常量);即一次性映射,并在加载时从系统中索取。它们在整个程序生命周期中一直处于分配状态,因此您无能为力。

也预先分配了大的堆空间和堆栈空间,但可以根据需要进行扩展。动态分配的变量和自动分配的变量确实是在程序分配过程中按需创建和删除的,但这并不一定意味着"内存消耗"会减少。减少,因为堆和堆栈空间总是存在的。

注意构造函数和析构函数不分配任何内存,它们只是执行初始化和反初始化任务。分配/释放在函数进入/退出时,在堆栈上执行,或者在调用new/delete时,在堆上执行。


实际上,事情更复杂,因为进程的内存空间是虚拟化的,即映射到物理上可用的RAM和磁盘块,它们在所有运行的进程之间共享。

有。如果您在Dll (LoadLibrary)或。so (dlopen)中加载函数。当您分别调用FreeLibrarydlclose时,您将释放该函数。

相关内容

  • 没有找到相关文章

最新更新