我是靠谱客的博主 冷艳白开水,这篇文章主要介绍new和malloc申请内存失败后的处理,现在分享给大家,希望可以做个参考。

1.c++ 标准 new 失败是抛出异常的,Visual C++ 6.0中返回一个NULL指针.

使用new(std::nothrow)可以保证失败时返回NULL;

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

2.使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”,返回空指针表示申请内存失败。

eg:

复制代码
1
2
3
4
5
#define new new(std::nothrow)

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

3.申请内存失败的原因:程序用完了所有的可用内存.

最后

以上就是冷艳白开水最近收集整理的关于new和malloc申请内存失败后的处理的全部内容,更多相关new和malloc申请内存失败后内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部