Do I need to check for NULL after p = new X?
X *p = new X;
if (NULL == p)
...
问题点数:0、回复次数:11Top
1 楼languagec(各有所求)回复于 2005-06-02 23:28:11 得分 0
it all depends your habitTop
2 楼languagec(各有所求)回复于 2005-06-02 23:30:51 得分 0
分配不成功可以用 异常 检测的Top
3 楼darkhawk(黑鹰)回复于 2005-06-02 23:34:38 得分 0
检测也没有用,分配失败后抛出异常,如果你不捕获bad_alloc的话,程序会直接崩溃。Top
4 楼foochow(无聊,灌水......)回复于 2005-06-02 23:38:17 得分 0
检查是否成功-_-想写就写Top
5 楼sinkinglife(沉沦)回复于 2005-06-02 23:42:29 得分 0
最好写下异常处理代码。Top
6 楼farger(发哥)回复于 2005-06-02 23:51:51 得分 0
i think it's necessary~Top
7 楼nicknide(封月翔天)回复于 2005-06-02 23:53:46 得分 0
void throw_bad_alloc(void){throw std::bad_alloc;}
set_new_handler(throw_bad_alloc);
//这样就不用捕获了,直接异常TerminateTop
8 楼mostideal(三甲)回复于 2005-06-03 00:08:37 得分 0
有必要。。Top
9 楼mccxj(老鼠不逛街)回复于 2005-06-03 00:11:27 得分 0
需要。。。这是个好习惯。。。。因为分配也有不成功的时候。。。。Top
10 楼wanshi_53(幻相)回复于 2005-06-03 00:15:31 得分 0
恩,检查是很有必要的。
有可能分配不成功的:)Top
11 楼zdy_8212(zdy_8212)回复于 2005-06-03 00:58:57 得分 0
主要是判断子模块是否对错误进处弥补。当然这得在未使用前。Top
相关问题
- P^.x:=100怎么实现?
- int **p,*i; i=NULL; p=&i; 请问p的值是多少?
- 请问为什么*p=&(x++)是错误的而*p=&++x是正确的?
- Point p为什么不能判断if (p==null)??????
- nodetype *p=new nodetype(3); 那delete p后p是否一定是NULL(0)呢?
- 有人说COM就是DLL,对吗?若有 int **p; *p=NULL; 则**p是否等于*NULL,*NULL又为何物?我想将virtual HRESULT_stdcall QueryInterface(c
- if(p && p->data) 这样用,如果p为NULL一定不会错,还是有可能错?
- 请大家讨论一下:if(p) delete p;p=NULL,这个判断有没有必要?
- 给 大 家 一 些 众 X 客 喜 欢 攻 击 的 I P :
- x




