日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HEAP: Free Heap block XXXX modified at XXXX after it was freed

發布時間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HEAP: Free Heap block XXXX modified at XXXX after it was freed 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發過程中,有時候會遇到堆異常的情況
這時,VS的調試輸出窗口會提示:
HEAP[MemTest.exe]: HEAP: Free Heap block 39b998 modified at 39b9c0 after it was freed
Windows has triggered a breakpoint in MemTest.exe.

This may be due to a corruption of the heap, which indicates a bug in MemTest.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while MemTest.exe has focus.

The output window may have more diagnostic information.

就是說已經釋放的堆內存被修改了,一般就是new/malloc 后的內存,在被delete/free后又被使用了
一個簡單例子

#include "stdafx.h" #include <stdlib.h> #include <string.h> void test(void); void testStruct(void); void tt(void); struct tagTest { int a; int b; }; int _tmain(int argc, _TCHAR* argv[]) { testStruct(); test(); system("pause"); return 0; } void test(void) { char* pBuffer = new char[128]; strcpy(pBuffer, "hello"); printf("%p %s\n", pBuffer, pBuffer); delete[] pBuffer; strcpy(pBuffer, "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"); printf("%p %s\n", pBuffer, pBuffer); tt(); } void tt(void) { printf("I do nothing\n"); } void testStruct(void) { tagTest* pTest = new tagTest(); pTest->a = 0x11111111; pTest->b = 0x22222222; printf("%p %d, %d\n", pTest, pTest->a, pTest->b); delete pTest; pTest->a = 0x33333333; pTest->b = 0x44444444; printf("%p %d, %d\n", pTest, pTest->a, pTest->b); tt(); }
VC2008編譯運行以上程序(DEBUG模式),發現運行到void test(void)函數的new那條語句時程序報錯
不過這個new是不應該報此錯誤的,頂多報個內存不足就夠了......郁悶啊,后來發現,對內存被釋放后再使用是不會立即報錯的,等到再次使用堆操作函數時才會報錯。
也就是說,當時的調用堆棧是不準確的,那定位真正出問題的地方才是關鍵。
在MSDN論壇上有人說可以觀察memory窗口,根據內存內容推測問題。運氣好的話在報錯的內存地址處可以看出來蛛絲馬跡(比如說上面的實驗程序),運氣不好就只好把申請的內存和使用的地方全部打印。
Free Heap block AAAA modified at BBBB after it was freed在這句提示里,block AAAA 不是平時申請地址后的返回值,一般都比我們申請的小一些,在VC2008 DEBUG的模式下這個值比申請出來的小40(0x28)的字節, 地址 BBBB 應該總是不小于 AAAA。

這種問題不好調試,貌似網上也沒什么有效的方法,

參考:
內存窗口的使用(http://social.msdn.microsoft.com/Forums/hu-HU/vclanguage/thread/01bae812-0a5f-4b17-9745-b1c8293a25b1)
再次申請或退出時報錯(http://hi.baidu.com/lcs0000824/blog/item/9e77e4a58ef2e1ff9152ee7e.html/cmtid/783c8809d62fc19e0a7b8211)
此時堆棧不準確(http://www.davekb.com/browse_programming_tips:free_heap_block_modified_after_it_was_freed:txt)

轉載于:https://www.cnblogs.com/xkxjy/archive/2011/02/28/2078096.html

總結

以上是生活随笔為你收集整理的HEAP: Free Heap block XXXX modified at XXXX after it was freed的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久国产一级 | 深夜视频在线看 | av优选在线观看 | 在线观看国产精品一区 | 91一区二区三区在线观看 | 国产欧美日韩专区 | 村姑电影在线播放免费观看 | 欧美久久久久久久久久 | 久久精品成人av | 国产精品无套 | 我们的生活第五季在线观看免费 | 8090av| 青青草成人免费视频 | 免费无遮挡在线观看视频网站 | 奇米777视频| 剧情av在线 | av资源网在线观看 | 麻豆传媒在线免费 | 自拍视频国产 | 好姑娘在线观看高清完整版电影 | 中文字幕网址在线 | 日本人妻不卡一区二区三区中文字幕 | 欧美亚洲少妇 | 久久久精 | 另类专区欧美 | 久久久久久久久国产 | 国产高清无密码一区二区三区 | 婷婷激情在线 | 亚洲欧美综合另类自拍 | 日韩av日韩 | 天天操天天操 | 日韩专区中文字幕 | 三上悠亚影音先锋 | 成人高清在线 | 91操操| 麻豆视频在线免费观看 | 全国最大色 | 久久波多野结衣 | 久久午夜福利电影 | www夜插内射视频网站 | 在线播放免费av | 国产中文 | 欧美 日韩 国产 成人 在线观看 | 欧美一区在线观看视频 | 日韩精品久久一区二区 | av在线不卡一区 | 亚洲久久久久久 | 日韩电影三级 | 国产无遮挡又黄又爽又色 | 人人爽人人爽人人片 | 成av人在线观看 | 日操夜操天天操 | 天天干夜夜欢 | 午夜精品久久久久久久99热浪潮 | 久久av网站 | 性欧美hd调教 | 中文字幕 欧美激情 | 亚洲综合99 | 国产免费www| 精品少妇一区二区三区 | 在线不卡一区二区 | 91大尺度 | 人妻少妇精品中文字幕av蜜桃 | 女性裸体不遮胸图片 | 蜜臀久久精品久久久用户群体 | 丁香av | 深夜影院深a | 亚洲精品成人网 | 男插女青青影院 | 天操夜夜操 | av无线看| 亚洲av无码一区二区二三区软件 | 国产精品久久久久久久久绿色 | 国产黄网在线观看 | 一区二区三区小说 | 妺妺窝人体色www聚色窝仙踪 | 天天摸日日摸 | 午夜视频在线 | 超碰免费在线播放 | 久久精品国产亚洲av久 | 亚洲黄色激情 | 成人在线综合 | 浪潮av网站 | 成人免费看片&#39; | 特级毛片爽www免费版 | 中文字幕第7页 | 人人妻人人澡人人爽精品日本 | 日本高清网站 | 欧美午夜精品理论片 | 成人免费看毛片 | 金鱼妻日剧免费观看完整版全集 | 夜夜骑夜夜骑 | 国产一二三在线视频 | 一区二区三区四区五区在线视频 | 日日舔夜夜摸 | 九月丁香婷婷 | 亚洲一二三四 | 美女福利一区 | 超碰福利在线 |