- 积分
- 433
- 明经币
- 个
- 注册时间
- 2004-5-25
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 作者 于 2005-1-22 13:20:08 编辑
用Solid1->createBox(1000,1000,1000);则delete Solid1可以很干净地释放内存 而用Solid1->ExtrudeAlongPath(Rgn,Curve);则delete Solid1只释放了一部分内存,该如何做?
============代码如下============ if (AcDbRegion::createFromCurves(SegArr,RgnArr)!=Acad::eOk) { for (i=0;i<SegArr.length();i++) delete (AcRxObject*)SegArr; for (i=0;i<RgnArr.length();i++) delete (AcRxObject*)RgnArr; return(NULL); }
Rgn=(AcDbRegion*)RgnArr[0]; Solid1=new AcDb3dSolid; Solid1->ExtrudeAlongPath(Rgn,Curve); //............这一句是不是有内存泄漏 //Solid1->CreateBox(1000,1000,1000); //............这一句不存在泄漏 delete Solid1; for (i=0;i<SegArr.length();i++) delete (AcRxObject*)SegArr; for (i=0;i<RgnArr.length();i++) delete (AcRxObject*)RgnArr;
|
|