7 9 記憶體耗盡怎麼辦?

2021-06-22 02:31:43 字數 606 閱讀 4217

如果在申請動態記憶體時找不到足夠大的記憶體塊,malloc 和new 將返回null 指標,宣告記憶體申請失敗。通常有三種方式處理「記憶體耗盡」問題。

(1)判斷指標是否為null,如果是則馬上用return 語句終止本函式。例如:

void func(void)…}

(2)判斷指標是否為null,如果是則馬上用exit(1)終止整個程式的執行。例如:

void func(void)…}

(3)為new 和malloc 設定異常處理函式。例如visual c++可以用_set_new_hander 函式為 new 設定使用者自己定義的異常處理函式,也可以讓malloc 享用與new 相同的異常

處理函式。詳細內容請參考c++使用手冊。

上述(1)(2)方式使用最普遍。如果乙個函式內有多處需要申請動態記憶體,那麼方式(1)就顯得力不從心(釋放記憶體很麻煩),應該用方式(2)來處理。

很多人不忍心用exit(1),問:「不編寫出錯處理程式,讓作業系統自己解決行不行?」不行。如果發生「記憶體耗盡」這樣的事情,一般說來應用程式已經無藥可救。如果

記憶體耗盡怎麼辦?

如果在申請動態記憶體時找不到足夠大的記憶體塊,malloc和new將返回null指標,宣告記憶體申請失敗。通常有三種方式處理 記憶體耗盡 問題。1 判斷指標是否為null,如果是則馬上用return語句終止本函式。例如 void func void 2 判斷指標是否為null,如果是則馬上用exit...

C 記憶體耗盡怎麼辦?

如果在申請動態記憶體時找不到足夠大的記憶體塊,malloc和new將返回null指標,宣告記憶體申請失敗。通常有三種方式處理 記憶體耗盡 問題。1 判斷指標是否為null,如果是則馬上用return語句終止本函式。例如 void func void 2 判斷指標是否為null,如果是則馬上用exit...

怎麼辦,怎麼辦?

我在一家軟體公司做程式設計師,也有一年多,我是做.net方向的,公司活還可以,就是工資給的少。本來想在工作半年的時候提出加薪的要求,可事事難料啊?就在我剛要開口的時候公司發生了變動。收購 我公司被乙個集團收購了,在收購的這段期間我們公司真是損兵折將啊,走了一大批人,其中包括我們原來的專案經理。這樣一...