2010-07-22 82 views
0

我有一個c應用程序即時編譯在visual studio 2010
即時得到這個錯誤在我的一個功能 一般我怎麼能調試這種異常?
該函數是從DLL,其他功能工作,但不是這一個。xxx.exe中的0x6c70f2ca未處理的異常0xC0000005:訪問衝突讀取位置0xcdcdcdf1如何調試?

+0

你已經產生了足夠的代碼。值得注意的是,這個異常是Windows結構化異常,而不是C++異常。 – Puppy 2010-07-22 13:19:32

+0

那麼,在調試器下運行應用程序時會發生什麼? – 2010-07-22 20:02:04

回答

1

當嘗試解引用未初始化的指針時,最可能發生錯誤。因此:

  1. 重新編譯,最大值爲(4),最大警告級別爲 。查看警告。 您會發現列出了本地 變量,這些變量在初始化時不包含 (包括指針)。
  2. 檢查您傳遞給函數的參數(特別是指針/參考參數)。檢查其初始化。
3

調試內存分配器用0xcdcdcdcd填充新分配的內存。看起來你已經分配了一些內存,只將低字節設置爲0xf1(241),並試圖在該位置釋放一個4字節的指針。沒有看到代碼,這是我能看出的。

+0

+1,表示同意。讀取未初始化的堆內存。 – 2010-07-22 13:40:25

+1

他沒有'將低字節設置爲0xf1',他得到了一個未初始化的結構指針(因此爲0xcdcdcdcd),然後他正在訪問結構中0x24的成員。 – 2010-07-22 14:19:03

相關問題