标签:tor -- 空指针 cocos2d 代码结构 内存 cocos null 源码
Node * Node::create() { Node * ret = new (std::nothrow) Node(); if (ret && ret->init()) { ret->autorelease(); } else { CC_SAFE_DELETE(ret); } return ret; }
new operator分配内存失败后,缺省的行为不是返回NULL,而是抛出异常std::bad_alloc。所以判断返回值是否为NULL没有任何意义。使用 try catch 会导致代码结构很乱,
而使用 new (std::nothrow) 在分配内存失败时会返回一个空指针,逻辑简洁清晰。
标签:tor -- 空指针 cocos2d 代码结构 内存 cocos null 源码
原文地址:https://www.cnblogs.com/ak47-space/p/9259739.html