gpt4 book ai didi

c++ - 等同于 Windows/MSVC 上的段错误?

转载 作者:行者123 更新时间:2023-11-30 03:13:46 26 4
gpt4 key购买 nike

在 Linux 上,以下代码:

long* p = (long*)reinterpret_cast<void*>(0x634963963496034) // random memory address
std::cout << *p;

可能会导致读取尚未分配的内存,并且程序会发出 SIGSEGV 信号。否则称为段错误。 (可以通过 sigaction(2) 附加一个 Action )。

Windows/MSVC 上是否有等效机制?

上面的代码在 Windows 上会做什么?有什么方法可以捕获这种内存访问冲突,并运行用户提供的函数吗?

最佳答案

在 Windows 上,当使用 Structured Exception Handling 捕获异常时, 宏 GetExceptionCode()将返回 EXCEPTION_ACCESS_VIOLATION

也可以使用 C++ 异常处理来捕获 SEH 异常,如所述here .

关于c++ - 等同于 Windows/MSVC 上的段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58441912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com