先看看new的源码:

内存是有限的,如果使用不当,总会到了山穷水尽的时候。也就是说分配内存失败。那这个时候怎么处理,或者怎么给用户提示呢?在c++中还真有这么一个操作。请看

其实就在最上面那个while循环处。会调用一个由set_new_handler()设置的函数。
接下来做一个测试:

在这个设置的函数里,你就可以释放一些不用的内存。假设你有个私心,比如和其他的软件运行在一台设备,可以刚开始先给自己分配以块区域,然后等用完了,调用到这个函数的时候,把它释放了。当然这个太阴险了,不符合我们程序员单纯善良的作风。
本文探讨了C++中如何处理内存分配失败的问题,并介绍了通过set_new_handler()设置回调函数来释放内存的方法。
4万+





