找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 6980|回复: 3

ACE_Message_Block存放指针的问题

[复制链接]
发表于 2008-7-13 23:13:05 | 显示全部楼层 |阅读模式
为什么使用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)));
 楼主| 发表于 2008-7-13 23:13:12 | 显示全部楼层
改为

void* p = (void*)this;

this->recv_data_->copy ((const char *)&p));
发表于 2012-6-29 14:31:09 | 显示全部楼层
我问一下,放入指针的话,在ACE_Message_Block调用release或 delete ACE_Message_Block*时,里面的指针指向区域的内存是否会回收?
发表于 2013-2-11 23:49:11 | 显示全部楼层
回答三楼的问题:当然不会释放啊。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-21 20:45 , Processed in 0.015629 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表