c++ - C C++内存泄漏的原因

标签 c++ c memory-management

C C++内存泄漏的原因有哪些 (除了通常分配内存而忘记释放它)

最佳答案

如果在分配和释放之间引发异常,则会发生内存泄漏。

void f1() {
    int* ptr = new int;

    // do something which may throw an exception

    // we never get here if an exception is thrown
    delete ptr;
}

每次 f1 异常终止时,都会泄漏 4 个字节(假设 int 是 4 个字节)。

关于c++ - C C++内存泄漏的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447391/

相关文章:

c++ - 交叉编译——Windows 上的 V8 和 Linux

c - 以灵活且不显眼的方式在 C 中扩展 API

objective-c - for循环中的 objective-c 内存管理

c# - 内存映射文件被加载到进程的用户模式地址空间或内核地址空间?

c++ - 将 PDF 打印到 HDC(MFC 设备上下文)

C++ - 将类传递给其他类。我如何知道何时使用友元继承

c++ - 我们如何初始化结构?

c - 以循环方法调度 pthread

c++ - 修改connect()超时时间

c - 分配和分配 : different memory size allocated