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