如何确定提供给free()的地址是否是无效地址?

kin*_*er1 4 c linux free

free( )在调用之前,有没有办法找出提供给的地址是否是无效地址free( )

free( )如果地址是无效地址(已释放的地址),我们知道会创建一个未定义的行为.那么如何确保地址是有效的呢?

提前致谢.

And*_*ett 6

如果你需要这样做,你会遇到一个更大的问题 - 在你完成它之前你已经释放了你的记忆,或者当你完成它之后你没有使记忆的引用无效.free()您应该尝试修复指针生命周期问题,而不是试图通过更改来阻止程序双重释放.

您可能会发现Valgrind可以帮助您找出出错的地方.