看板 C_and_CPP 關於我們 聯絡資訊
想請問 new 失敗的原因是什麼? 我的猜想是 每個程式在執行時由系統配置了一塊虛擬出來的記憶體 如果這塊虛擬記憶體上沒有足夠的連續空間供 new 使用 new 就會失敗 如果程式本身不釋放記憶體的話 就算重複 new 也永遠不會成功 不知道這樣的解釋對嗎? 如果這樣的解釋正確的話 那在多執行緒下 是多個執行緒共有一塊虛擬記憶體 還是各有自己的一塊虛擬記憶體呢? 會問這個問題,是在想設一個不做事的 new handler 有沒有意義 如果跟我想的一樣的話 設置一個不做事的 new handler 跟 while (true) 其實是一樣的意思 只會導致程式沒有回應 如果跟我想的不一樣的話 設置一個不做事的 new handler 會導致 new 不斷重試 直到有其他程式釋放出記憶體供這個程式使用 那就可以當做 new 不會失敗 請問實際情況是哪個呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.61.38