new和malloc申請內存失敗后的處理


1.c++ 標准 new 失敗是拋出異常的,Visual C++ 6.0中返回一個NULL指針.

使用new(std::nothrow)可以保證失敗時返回NULL;

因此完全可以 #define new new(std::nothrow) .

2.使用 malloc/calloc 等分配內存的函數時,一定要檢查其返回值是否為“空指針”,返回空指針表示申請內存失敗。

eg:

#define new new(std::nothrow)

char
*p = new char[4]; if(p != NULL) { strcpy(p, "hi"); }

3.申請內存失敗的原因:程序用完了所有的可用內存.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM