void newHandler() {
cdebug << "memory allocation failure" << std::endl;
throw std::bad_alloc();
}
int main() {
std::set_new_handler(newHandler);
// ...
}
一旦newHandler確立爲我們的錯誤處理程序捕獲的異常,當任何堆分配失敗,它會被稱爲 。有關錯誤 處理程序的一個有趣的事情是,它將被連續調用,直到內存分配成功,或者該函數拋出一個錯誤。內存分配
我對上述文本的問題是authore的意思是「直到內存分配成功,或者函數拋出一個錯誤」。在這種情況下,函數如何可以拋出錯誤?請求示例以瞭解。
感謝您的時間和幫助。
的可能重複(http://stackoverflow.com/questions/7194127/how-應該我寫-ISO-C-standard-conformant-custom-new-and-delete-operators) –
@Loki:這是一個比你發佈的可能重複更具體的問題。但我認爲標題應改爲:如何使用std :: set_new_handler – Phong