【发布时间】:2013-10-17 15:16:54
【问题描述】:
在 Windows 上,我注意到尝试取消引用指向最近释放的内存的指针会导致崩溃,并被 Visual Studio 捕获,指出内存无效。这正如预期的那样。但是,执行相同的应用程序和代码路径导致取消引用指向最近释放的内存的指针不会立即导致 Linux 崩溃。这向我表明,Linux 内核(或 GNU C++ 运行时)不会很快使释放的内存失效,即使在调试版本中也是如此。应用程序需要更长的时间才能崩溃。是这样吗?如果是这样,我可以强制内存更快地取消映射吗?如果不是,那是怎么回事?
【问题讨论】:
-
我不知道。每当出现这种情况时,我都会停止进行 UB,而不是尝试准确了解正在发生的事情。
标签: c++ c linux windows virtual-memory