marklinfly 发表于 2009-9-9 18:31:15

请高手进

请问一下两种方法有什么不同:
ACE_Message_Block * head = NULL;
    ACE_NEW_RETURN(head, ACE_Message_Block( sizeof( void * ) ), -1 );
    ACE_Message_Block *msg = head;
-------------------------------------------------
ACE_Message_Block * head =new ACE_Message_Block(sizeof( void * ))
    ACE_Message_Block *msg = head;

modern 发表于 2009-9-10 08:49:09

看书APG第一章,对此有专门介绍。

wanminny 发表于 2010-5-16 17:34:56

原帖由 modern 于 2009-9-10 08:49 发表 http://www.acejoy.com/bbs/images/common/back.gif
看书APG第一章,对此有专门介绍。


老大?第一章有专门介绍吗???

sugar 发表于 2010-5-16 22:21:46

你是问ACE_NEW_RETURN和NEW的区别吗? 在分内存分配失败的时候. 标准C++中,new 可能抛出异常也可能返回NULL.这个跟实现有关. 如果这时new返回的不是NULL(也就是无效的指针),就会发生内存错误. ACE_NEW_RETURN是对new进行了封装.如果内存分配失败,就会返回上层调用者.并指定一个返回值.
页: [1]
查看完整版本: 请高手进