c++ - 未捕获异常。访问违规读取位置

标签 c++ exception try-catch

我的代码:

void RandomBuffer(ByteVector& out, size_t size)
{
    try 
    {
        out.resize(size);
        memcpy(&out[0], (void*)memcpy, size);
    }
    catch (...)
    {
        return;
    }   
}

我想生成某种随机缓冲区(以快速方式并且像随机缓冲区一样)。所以我使用了提供的代码。对于小缓冲区,它工作得很好,但我有一些大缓冲区 334692352 字节,但它失败了。

之后我尝试使用try-catch,但无论如何我得到了一个异常,那就是访问冲突读取位置

我想问一下,为什么这个异常没有被catch捕获。

最佳答案

根据编译器和操作系统的不同,访问冲突可以作为异常引发,由操作系统或 CPU 捕获。如果操作系统捕获它并终止进程,您无能为力(但可以通过检查边界和 memcpy 来防止访问冲突)

关于c++ - 未捕获异常。访问违规读取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19830949/

相关文章:

c++ - 如何在 C/C++ 中使用 CAP_REWINDPAGE 作为 TWAIN api?

java - 如何在 Spring Security 中为过滤器创建自定义全局异常处理程序?

c# - 可以将 catch block 的结果传递给 try block 内的方法吗?

java - 异常处理 try catch inside catch

Java在句子后添加换行符(为什么要双换行符来解决它)?

c# - 尝试在 C# WPF 应用程序中捕获

c++ - 从类模板类型定义一个独立的静态成员函数

C++ 'AND' 评估 - 标准有保证吗?

C++:在基类的成员函数中复制对象数据

C++:从堆栈溢出中获取异常?