今天下午對面的老大調試遇到這個問題,大家1起討論好久才解決這個問題
crt源代碼都是可以看到的,為了了解清楚緣由,10分有必要查看源碼,源碼1般在你的VS安裝路徑下VCcrtsrc下。
點擊重試,定位到崩潰源碼地方dbgdel.c的第52行。
為了了解緣由,我的測試代碼是這樣寫的:
程序員new 和 malloc申請的內存是位于堆上面,程序不會自動清算,這就是區分所在。
因此,檢查你所釋放(delete 或 free)的那個指針,不是動態申請的就別弄巧成拙去釋放了。
老大遇到的情況就有點稀里糊涂了,new了1段內存,然后調用delete[]釋放,啥都沒干也會崩潰。大家分析了下,代碼本身是沒有緣由的,這時候候他檢查工程屬性發現:大部份工程都是win32的,這個dll卻是使用的mfc dll(說道MFC我想說下,這都甚么年頭了,如果是剛入行的就不要學MFC了,沒意義沒前程)。工程屬性改正后,重新編譯就行了。
下一篇 mysql高并發性能的關鍵要素