首页 > TAG信息列表 > heap-corruption

c-在构造函数中动态分配新对象

因此,考虑到这种简单的情况: class A{ public: A(){ n = new int(10); } ~A(){ delete n; } int* n; }; int main(){ A* a = new A(); } 因为在我进行新分配时a指针尚未完成分配,这是否会导致堆损坏(通常是问题)? 如果是这样,也

c – 使用CreateWindowExW时堆损坏

我有一些堆损坏的问题.使用CreateWindowExW函数时可以观察到警告.我知道这通常是一个内存错误,但我怎么能在这种情况下搜索它?在调用CreateWindowExW之前没有新变量,我无法进入此函数.这是代码. HWND GetMainWnd(HINSTANCE hInstance){ static HWND hWnd = NULL; if (hWnd) ret

c – 正常阻塞后检测到堆损坏(#174)

我知道这个问题已被问到我无法修复我的程序 void swap1(char*str1,char*str2) { char *ezer =new char[strlen(str1)]; for (int i = 0 ; i <= strlen(str1);i++) ezer[i]=str1[i]; delete [] str1; str1= new char[strlen(str2)]; for (int i = 0

c – 是否可以保护WinAPI的内存区域?

阅读了this interesting article概述了一种调试堆损坏的技术,我开始想知道如何根据自己的需要调整它.基本思想是提供一个自定义的malloc()来分配整个内存页面,然后为这些页面启用一些内存保护位,这样程序在写入时会崩溃,并且可以在行为中捕获有问题的写入指令.示例代码是Linux下的C

c – 代码中的堆损坏

根据Visual C运行时,在析构函数中调用free时会出现堆损坏.但是我不明白为什么会有堆腐败,有人可以解释为什么吗?确切的错误是: CRT detected that the application wrote to memory after end of heap buffer. 此外,如果我忽略错误,程序不会崩溃,它会继续运行,当我按下一个键时,它