1. 程式人生 > >0x01A686F0 處有未經處理的異常(在 五金上色軟件.exe 中): 0xC000041D: 用戶回調期間遇到未經處理的異常。。

0x01A686F0 處有未經處理的異常(在 五金上色軟件.exe 中): 0xC000041D: 用戶回調期間遇到未經處理的異常。。

問題排查 有關 。。 after 數組定義 ase 其他 定義 越界

CPntList* plist = &theApp.LPointlist;
_point_node node;
plist->AddTail(node);

很普通的調用Clist鏈表,卻頻繁出錯

技術分享圖片

在ASSERT_VALID那裏過不去,出現斷言

技術分享圖片

這個地方已經很久沒改過什麽了。進行問題排查:

試了其他的Clist卻都是正常的。就是這個theApp.LPointlist老是不行。

最後實在不行了,在定義的地方把theApp.LPointlist換了個位置

本來是這樣的

CPntList LPointlist;//左平臺-創建雙鏈表-存放點
CPntList pointlist_ins;//用於存放插入的新鏈表
CPntList pointlist_temp;//用於暫時存放臨時的

換成

CPntList pointlist_ins;//用於存放插入的新鏈表
CPntList LPointlist;//左平臺-創建雙鏈表-存放點
CPntList pointlist_temp;//用於暫時存放臨時的
CPntList AfterList;//存放偏移點的鏈表

卻發現可以了。不會出現斷言了。

跟位置有關,那就看看上下的什麽變量,往上一看果然有問題。

CDialog* pDialog[7];

這個變量是最近有操作過的。加了一個窗口,但是數組定義的數量卻沒有改大。因此出現數組越界。

要註意的是,在Release版本下,是不會報這個錯誤的。

0x01A686F0 處有未經處理的異常(在 五金上色軟件.exe 中): 0xC000041D: 用戶回調期間遇到未經處理的異常。。