处理malloc()和new时内存耗尽问题
2013-09-18 13:54
309 查看
(1)判断指针是否为NULL,如果是则立刻使用return终止函数;
void Func(void)
{
A *a = new(nothrow) A;
if(a == NULL) return;
...
}
(2)判断指针是否为NULL,如果是则用exit(1)终止整个程序运行;
void Func(void)
{
A *a = new(nothrow)A;
if(a == NULL) exit(1);
...
}
(3)为new 和malloc()预设异常处理函数;
(4)捕获new抛出的异常,并尝试从中恢复
建议:C++ 中提倡用(4)方式处理
void Func(void)
{
A *a = new(nothrow) A;
if(a == NULL) return;
...
}
(2)判断指针是否为NULL,如果是则用exit(1)终止整个程序运行;
void Func(void)
{
A *a = new(nothrow)A;
if(a == NULL) exit(1);
...
}
(3)为new 和malloc()预设异常处理函数;
(4)捕获new抛出的异常,并尝试从中恢复
建议:C++ 中提倡用(4)方式处理
相关文章推荐
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- 20170825_malloc和new申请内存失败后的处理
- new 和 malloc 申请内存失败的区别处理
- new 和 malloc 申请内存失败的区别处理
- 内存不够处理 -- 自己写new_handler(转:没考虑多线程问题)
- new 和 malloc 申请内存失败的区别处理
- new 和 malloc 申请内存失败的区别处理
- new 和 malloc 申请内存失败的区别处理
- new 和 malloc 申请内存失败的区别处理
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- new 和 malloc 申请内存失败的区别处理
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- C++中malloc/free与new/delete的区别及内存分配失败错误处理
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- C++内存分配秘籍—new,malloc,GlobalAlloc详解
- 经典问题解析(2)---malloc和new、编译器和构造函数、静态成员
- malloc()和free()函数的讲解以及相关内存泄漏问题
- C/C++内存分配方式,栈区堆区 new/delete/malloc/free
- 一次对HBase协处理器的内存耗尽问题的GC分析和解决
- golang kafka clinet 内存泄露问题处理