我已經看到資源顯示了兩種分配內存的方式,同時確保有足夠的內存來完成操作。如何在低內存條件下在C++中正確分配內存
1)換 '新' 操作一個try/catch,因爲它會返回的std :: bad_alloc的(?)
try { ptr = new unsigned char[num_bytes]; } catch(...) {}
2) '新的' 手術後檢查空分配的指針。
ptr = new unsigned char[num_bytes]; if(ptr == NULL) { ... }
哪一個是對的?他們都工作嗎?我是否需要做1和2?
感謝,
JBU
oooh這也許是我應該做的,以減少我需要改變的代碼量。 – jbu
@jbu:還要注意,某些代碼編譯時有例外。這是非標準的,在這種情況下,你需要閱讀你的編譯器文檔,但是如果失敗的話'new'將會返回0。 –