ACE_Message_Block存放指针的问题
为什么使用ACE_MESSAGE_BLOCK的COPY方法来压入一个指针,内容会变,但是直接用构造函数的方式就没问题,如下的代码段一是正确的,而二就不行,指针的内容变掉了,导致使用的时候失败一、
ACE_Message_Block * mb_blk_call = NULL;
ACE_NEW(mb_blk_call,ACE_Message_Block((const char *)(this)));
二、
ACE_NEW_NORETURN (this->recv_data_, ACE_Message_Block (sizeof(PacketHeader), MB_NORMAL_PACKET));
this->recv_data_->copy ((const char *)(this))); 改为
void* p = (void*)this;
this->recv_data_->copy ((const char *)&p)); 我问一下,放入指针的话,在ACE_Message_Block调用release或 delete ACE_Message_Block*时,里面的指针指向区域的内存是否会回收? 回答三楼的问题:当然不会释放啊。
页:
[1]