找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3706|回复: 2

ACE_InputCDR的问题

[复制链接]
发表于 2007-12-19 21:23:50 | 显示全部楼层 |阅读模式
代码片断如下.
ACE_InputCDR is(mb); // mb是一个消息块
char * str;
is >> str;
cout << "Read data : " << str << "\n";
delete [] str;
本来运行起来没什么问题. 后来用BoundChecker检查一下内存问题. 发现在这一句:
ACE_InputCDR is(mb);
有内存错误, 具体是memcpy()的第二个参数为无效指针0x00000000
我DEBUG进去看了一下, 的确如此. ACE_InputCDR 构造时的start_成员初始化时没有分配
内存, 在用给定的ACE_Message_Block构造时有一个拷贝的过程. 就是在这里有问题.
是不是我的用法有问题啊.
 楼主| 发表于 2007-12-19 21:23:56 | 显示全部楼层
想问一下到底是我的用法有问题, 还是这本身是ACE的一个小BUG. 大家用ACE和BoundChecker的时候有没有遇到类似情况?

另外就是我的程序还发现很多稀奇古怪的发生在ACE库内部的内存泄漏, 还不知道原因, 头大中, 等有线索再来问大家.
 楼主| 发表于 2007-12-19 21:24:01 | 显示全部楼层
你看到的所谓的内存泄漏,绝大部分其实不是,或者说不能这么认为。ACE_InputCDR就是这么设计的。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-5-20 07:27 , Processed in 0.013368 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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