以前分配有Malloc的释放堆内存段是否可以从核心访问,给定地址?鉴于每个free()都不会将内存返回到内核池(因为本地内存管理)。
如果是,如何区分有效(未释放)地址的访问权限?
基本上,我试图从核心转储一些数据结构。并且想知道,如果我将处理有效的数据结构或先前已分配但已释放的
答案 0 :(得分:0)
即使尝试访问以前释放的内存,未定义的行为。
如果它确实被释放了,它可能会被你自己的程序重用,所以地址仍然会被拥有"通过它。但是,通过释放的指针访问它将不做你期望的事情(或者它可能会,因为未定义的行为)。
所以不,你不能简单地检查一个指针是否被释放,你需要自己管理你的内存管理。 RAII等技术可以帮助您。