[問題] 鏈結串列新增太多結點,電腦會爆掉嗎?

看板C_and_CPP作者 (serflygod)時間12年前 (2012/04/04 19:30), 編輯推噓6(605)
留言11則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) no 問題(Question): 如題 我宣告了一個鏈結串列,中間視過程運算來決定要加多少結點上去 有時可能會加到六位數以上 結果程式就出現警示窗 然後就不跑了 我認為是記憶體空間不夠 但我同學一直認為這太瞎了 不可能是記憶體的問題 但我如果將結點數控制不要太大 就不會爆掉 所以我還是認為是記憶體空間不夠的問題 請問有誰瞭解鏈結串列 結點加到六位數以上會爆掉真的不是記憶體空間的問題嗎 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.73.121

04/04 19:35, , 1F
沒範例碼大家只能猜 你也沒說你一個節點size多大
04/04 19:35, 1F

04/04 19:38, , 2F
假設節點是100byte,串一百萬個點就是100mb ram
04/04 19:38, 2F

04/04 19:44, , 3F
晒個不跑時的工作管理員、警示窗、程式碼的恩愛圖來看吧
04/04 19:44, 3F

04/04 20:21, , 4F
忘了講,一個節點是5byte
04/04 20:21, 4F

04/04 22:02, , 5F
你沒把他們放在stack上吧?
04/04 22:02, 5F

04/04 22:12, , 6F
你可以試試new新節點時,確認一下,如果沒有新節點就印訊息.
04/04 22:12, 6F

04/04 23:27, , 7F
我直覺認為這個數量不太可能用光記憶體就是了
04/04 23:27, 7F

04/04 23:39, , 8F
5 byte 只是表面上而已 (如果你是每個節點都 new 單個的話)
04/04 23:39, 8F

04/04 23:40, , 9F
實際上用掉的 heap 空間會多不少...
04/04 23:40, 9F

04/05 01:17, , 10F
去看你用掉的ram就知道了
04/05 01:17, 10F

04/05 12:26, , 11F
heap,也是有限的…
04/05 12:26, 11F
文章代碼(AID): #1FV330Cv (C_and_CPP)