首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

dll中new 一个种, dll外delete

2013-06-25 
dll中new 一个类, dll外deleteint main(){Class1* pClass CreateObj()delete pClass}CreateObj()函数是

dll中new 一个类, dll外delete
int main()  
{  
    Class1* pClass= CreateObj();
    delete pClass;
}

CreateObj()函数是dll中的函数,用于new一个Class1的派生类,并返回基类Class1的指针。
为什么在dll外释放没有问题? 类 delete??new
[解决办法]

引用:
如果是这样:
int main()  
{  
    char *p = NULL;
    MyAlloc( &p );
    delete p;
    ....
}

MyAlloc是dll中的函数,用于创建堆内存,并把地址赋给p。
执行会出问题,因为是在dll外消毁堆内存, 同样的为会么new 一个类不会有问题?


想想new比malloc多了什么,你就明白了。 
[解决办法]
http://msdn.microsoft.com/en-us/library/ms235460
http://msdn.microsoft.com/en-us/library/abx4dbyh(v=vs.80).aspx

热点排行