[問題] 一個linked list 的問題

看板C_and_CPP作者 (大鳥哥)時間16年前 (2009/12/09 21:41), 編輯推噓4(4023)
留言27則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 程式執行時出現: "於0x00441a55的 Matrices.exe 中發生未處理的例外狀況0xc0000005讀取位置 0xcdcdcdd1時發生存取違規" 希望得到的正確結果: 希望可以不出現此情況 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 開發的平台是DirectX 9 有問題的code: (請善用置底文標色功能) http://nopaste.csie.org/71e80 補充說明: 小弟不才 在寫此程式時需要使用linked list 可是在下對linked list不太熟 所以出現錯誤 怎麼也無法解決 看了一下版規 好像沒有出現程式十誡的錯誤 所以斗膽來po板 請各位板上各位先進指點一下魯鈍的小弟(抖) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.127.36.115

12/09 21:42, , 1F
對了 我用的是.net編譯的 它說有問題的地方是在
12/09 21:42, 1F

12/09 21:42, , 2F
while(p ->Next != NULL) 那裏
12/09 21:42, 2F

12/09 21:44, , 3F
從錯誤訊息跟你給的片段來看p是NULL所以炸掉了
12/09 21:44, 3F

12/09 21:46, , 4F
可是listA是我的首節點 我想要在他後面加節點
12/09 21:46, 4F

12/09 21:46, , 5F
所以那個p一開始是NULL對 要怎麼修改才好呢?
12/09 21:46, 5F

12/09 23:16, , 6F
最前面加個 if(p==NULL) p=NewEne; else 才接 while
12/09 23:16, 6F

12/09 23:17, , 7F
又或者讓 p 一開始指向一個非資料的假 node, 之後各種應用也
12/09 23:17, 7F

12/09 23:17, , 8F
都會無視這個 dummy node
12/09 23:17, 8F

12/09 23:19, , 9F
小弟我也超愛用dummy head的....:)
12/09 23:19, 9F

12/09 23:37, , 10F
用了ledia大的方式還是不行耶...還是錯在同一行...
12/09 23:37, 10F

12/09 23:44, , 11F
因為我的listA一開始就打算讓它是個空節點
12/09 23:44, 11F

12/09 23:47, , 12F
我把我宣告的地方貼出來 可能是宣告的地方錯了 >"<..
12/09 23:47, 12F

12/09 23:47, , 13F

12/09 23:54, , 14F
沒改過的code,是要隔空抓藥嗎XD
12/09 23:54, 14F

12/10 00:22, , 15F
那我隔空抓一下喔, 問題不是出在 p->Next
12/10 00:22, 15F

12/10 00:22, , 16F
而是你 constructor 裡面 listA 做出來之後沒有放初值
12/10 00:22, 16F

12/10 00:23, , 17F
所以 p=listA; p=p->next; 之後這個 p 值是未初始化的
12/10 00:23, 17F

12/10 00:23, , 18F
也許那個 listA (我猜是你改出來的假 dummy) 應該要給點值
12/10 00:23, 18F

12/10 00:24, , 19F
比如說 mStageMapping() { listA = new Ene; listA->next=..
12/10 00:24, 19F

12/10 00:25, , 20F
把各個 field value 都填好, 就像一個正常 (但沒有Name) 的
12/10 00:25, 20F

12/10 00:25, , 21F
link list node
12/10 00:25, 21F

12/10 00:25, , 22F
順便提一下, 你這種加法, 不就每次都要整個走訪一次
12/10 00:25, 22F

12/10 00:26, , 23F
有沒有興趣把尾巴也記下來
12/10 00:26, 23F

12/10 00:47, , 24F
ledia大 專業! 我成功了! 問題的確是我太笨 忘了給初值
12/10 00:47, 24F

12/10 00:47, , 25F
l大有沒有興趣抓一下下一期大樂透的號碼....XD
12/10 00:47, 25F

12/10 00:47, , 26F
感謝大家的幫助! 然後我的目標的確是要每個node走訪一遍
12/10 00:47, 26F

12/10 12:11, , 27F
大.. 大樂透嗎 ? 這種東西真抓到了是不會拿出來分享的吧 XD
12/10 12:11, 27F
文章代碼(AID): #1B7waG1L (C_and_CPP)