heap-corruption

    -4热度

    1回答

    我写了一个C++程序,实际上它是一个游戏。 我收到此错误: Windows has triggered a breakpoint in bla bla... 有人可以帮我吗? 这是代码,但行AAA出现错误: void r_motions(char **map,int size) { int parameter_i,parameter_j,player_i,player_j;

    4热度

    1回答

    我有一个多线程的Windows服务器,我正在开发并发现在通过control-c关闭该程序时出现一定的条件集后,它会崩溃。如果我的服务器从客户端收到数据包,然后使用control-c,则它会崩溃。如果我启动服务器,让它等待数据包一段时间,然后使用control-c,它会正常退出。 虽然它的奇怪之处在于我的所有线程都报告说他们即使在程序抛出异常时也会以状态0退出(除非这是正常的)。 First-cha

    0热度

    2回答

    下面的代码代码,但没有人知道为什么这会打破堆? urlencode函数是在其他地方下载的标准库函数,并且可以按设计运行。在实际的代码中,我使用动态大小的char数组,因此malloc需求的原因在main中。 /* Returns a url-encoded version of str */ /* IMPORTANT: be sure to free() the returned string

    -2热度

    1回答

    我有一个函数a(),它调用另一个函数b(),其中一个特定类的对象向量被分配到堆上并返回它的指针。现在退出func a()我的程序。崩溃与堆损坏错误。调试器显示它在免费的func中崩溃。我怎样才能知道哪个对象被调用的析构函数? 使用调试器,我可以看到无效__cdecl _free_base(void *的pBlock)被调用和pblock的价值是0x00000000646ec420类的std ::

    1热度

    2回答

    我不能为我的生活弄清楚为什么我收到此调试错误:在 0x004cF6c0 普通块(#126)后: 堆损坏检测CRT检测到应用程序在堆填充程序结束后写入内存。 我知道你需要释放内存,每当你使用新的操作符, 我做了,我仍然遇到问题。 由于某种原因程序在递归函数中没有正确结束。我调试了它,并用断点遍历了每行代码。 在countSum中的if语句结尾,它以某种方式从i 中减去1,然后重新进入if块.....

    1热度

    1回答

    只要调试器遇到delete[]运算符,以下代码似乎会导致堆损坏。它试图删除头文件中定义为extern的全局结构数组,然后在主.cpp文件的全局范围内声明。 LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CREATE

    3热度

    1回答

    VS2008,C.还使用一些预建库。 当我通过我的代码在调试器和在库函数被调用步骤,我得到这个: HEAP [unit_test.exe]:堆失踪近 35c70的Windows在承诺范围内最后一个条目已触发断点在unit_test.exe中。 这可能是由于堆损坏引起的,这表明 unit_test.exe或其中已加载的任何DLL错误。 这也可能是由于用户按F12,而unit_test.exe具有 焦

    1热度

    1回答

    我的C程序中似乎有内存损坏。我使用_ASSERTE(_CrtCheckMemory());来查找问题陈述,并且在它之前的一行上写着scep_conf->engine_str = NULL;。所以,如果我正确地理解了它,那么malloc在破解之前就是对的? 所以这是部分代码导致问题: scep_conf = (SCEP_CONF *) malloc(sizeof(scep_conf)); scep

    -1热度

    2回答

    我写了一个简单的程序: #include<iostream> #include<list> using namespace std; list<int>& func(); int main(){ list<int> a = func(); delete &a; std::cout<<"Here\n"; } list<int>& func(){

    0热度

    1回答

    我正在实现一种算法来选择数组的第K个最小元素。到目前为止,当我试图免费堆内存我得到这个错误:CRT检测应用程序堆缓冲区结束后写信给记忆...... int SEQUENTIAL_SELECT(int *S , int k , int n) { if(n<=Q) // sort S and return the kth element directly { qsor