title: malloc和new什么情况下会失败？
desc: 写代码是总是说malloc来的指针要判断非空，new的时候要catch badalloc。程序实际运行的时候会有哪些情况下分配内存会失败？不考虑一次申请上G的超大内存或者内存泄漏的情况。
topic: C / C++
content: 你可以在程序启动的时候执行 setrlimitRLIMITAS， ... 来设置最大内存，然后就能观察到 mallocnew 失败了。
answerer_tags: Linux C++程序员，muduo 网络库作者