【发布时间】:2019-10-17 23:20:58
【问题描述】:
在 Linux 上,以下代码:
long* p = (long*)reinterpret_cast<void*>(0x634963963496034) // random memory address
std::cout << *p;
可能会导致读取尚未分配的内存,并且程序将引发 SIGSEGV 信号。否则称为段错误。 (可以通过sigaction(2) 附加操作)。
Windows/MSVC 上是否有等效机制?
以上代码在 Windows 上会做什么?有什么办法可以捕获这种内存访问冲突,并运行用户提供的函数?
【问题讨论】:
标签: c++ visual-c++ c++17 visual-studio-2019