可以从进程核心访问释放的内存段吗?

时间:2015-02-02 11:29:06

标签: c++ c linux memory-management memory-leaks

以前分配有Malloc的释放堆内存段是否可以从核心访问,给定地址?鉴于每个free()都不会将内存返回到内核池(因为本地内存管理)。

如果是,如何区分有效(未释放)地址的访问权限?

基本上,我试图从核心转储一些数据结构。并且想知道,如果我将处理有效的数据结构或先前已分配但已释放的

1 个答案:

答案 0 :(得分:0)

即使尝试访问以前释放的内存,未定义的行为

如果它确实被释放了,它可能会被你自己的程序重用,所以地址仍然会被拥有"通过它。但是,通过释放的指针访问它将做你期望的事情(或者它可能会,因为未定义的行为)。

所以不,你不能简单地检查一个指针是否被释放,你需要自己管理你的内存管理。 RAII等技术可以帮助您。