在C++中,使用new
操作符分配內存時,可以通過檢查返回的指針是否為空(nullptr)來判斷是否分配成功
#include<iostream>
int main() {
int *ptr = nullptr;
try {
ptr = new int[10]; // 嘗試分配內存
} catch (const std::bad_alloc &e) {
std::cerr << "分配內存失敗: " << e.what()<< std::endl;
return 1; // 返回非零值表示程序出錯
}
if (ptr == nullptr) {
std::cerr << "分配內存失敗"<< std::endl;
return 1; // 返回非零值表示程序出錯
}
// 使用分配到的內存...
delete[] ptr; // 釋放內存
return 0; // 程序正常結束
}
在這個例子中,我們首先聲明一個int
類型的指針ptr
并初始化為nullptr
。然后,我們嘗試使用new
操作符分配內存。如果分配成功,ptr
將指向新分配的內存區域;否則,ptr
將保持為nullptr
。
注意:從C++11開始,推薦使用nullptr
代替NULL
或0
來表示空指針。
此外,我們還可以使用try-catch
語句捕獲std::bad_alloc
異常,該異常在內存分配失敗時拋出。這樣,我們可以在異常處理程序中輸出錯誤信息或執行其他錯誤處理操作。