|
|
@@ -789,7 +789,10 @@ set_new_handler(newErr);
|
|
|
|
|
|
这样做其实就是让用户判断一下有没有补救措施,然后再调用一次 `malloc` ,说不定就成功了
|
|
|
|
|
|
+一般在 `new handler` 中会进行一些操作
|
|
|
|
|
|
+- 检查可释放内存,提前释放掉,这样内存多了获取就可以 `new` 成功了
|
|
|
+- 调用 `abort()` 或者 `exit()` 主动退出并且弹出警告信息
|
|
|
|
|
|
```cpp
|
|
|
void* __CRTDECL operator new(size_t const size)
|
|
|
@@ -814,4 +817,7 @@ void* __CRTDECL operator new(size_t const size)
|
|
|
// The new handler was successful; try to allocate again...
|
|
|
}
|
|
|
}
|
|
|
-```
|
|
|
+```
|
|
|
+
|
|
|
+> 不同的平台和版本可能有差异
|
|
|
+
|