【发布时间】:2016-04-09 23:37:06
【问题描述】:
在做了一些研究之后,我终于转向 SO 问我的问题:在使用 dlclose() 关闭库后,共享库(使用 malloc() 或 new)动态分配的内存会发生什么?我观察到的行为是对此类内存的任何访问(取消引用它,使用delete 运算符等)都会导致分段错误。它是在某个地方定义的吗?
现在这似乎是一个愚蠢的问题,当我知道在我完成内存之前调用 dlclose() 是错误的来源 - 通过在收到的 new 创建的对象上使用 delete 运算符触发来自共享库 - 过去几天我一直在苦苦挣扎,但我想知道为什么,而不是仅仅猜测以防我将来遇到类似情况。
【问题讨论】:
标签: c++ linux memory-management shared-libraries