Re: [問題] 有需要檢查 new 失敗的情形嗎?

看板C_and_CPP (C/C++)作者 (allstar)時間16年前 (2009/06/16 01:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
想請問 new 失敗的原因是什麼? 我的猜想是 每個程式在執行時由系統配置了一塊虛擬出來的記憶體 如果這塊虛擬記憶體上沒有足夠的連續空間供 new 使用 new 就會失敗 如果程式本身不釋放記憶體的話 就算重複 new 也永遠不會成功 不知道這樣的解釋對嗎? 如果這樣的解釋正確的話 那在多執行緒下 是多個執行緒共有一塊虛擬記憶體 還是各有自己的一塊虛擬記憶體呢? 會問這個問題,是在想設一個不做事的 new handler 有沒有意義 如果跟我想的一樣的話 設置一個不做事的 new handler 跟 while (true) 其實是一樣的意思 只會導致程式沒有回應 如果跟我想的不一樣的話 設置一個不做事的 new handler 會導致 new 不斷重試 直到有其他程式釋放出記憶體供這個程式使用 那就可以當做 new 不會失敗 請問實際情況是哪個呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.61.38
文章代碼(AID): #1ADeJ9Tj (C_and_CPP)
文章代碼(AID): #1ADeJ9Tj (C_and_CPP)