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

关于 delete 仍是 delete [ ]

2013-03-14 
关于 delete还是 delete [ ] ?SomeClass* p_sc reinterpret_castSomeClass* (new char[size])用: dele

关于 delete 还是 delete [ ] ?
SomeClass* p_sc =  reinterpret_cast<SomeClass*> (new char[size]);

用: delete [] p_sc; 还是 delete p_sc;  ??  

[解决办法]
不管是 delete [] p_sc;  还是delete p_sc;  都是错的 
char pch = p_sc;
delete[] pch;
[解决办法]

引用:
引用:不管是 delete [] p_sc;  还是delete p_sc;  都是错的 
char pch = p_sc;
delete[] pch;

(new char[size]) 返回的是 char** 吧。。。所以你的
char pch = p_sc;?? 还是 char* pch = p_sc; 还是 char……
嗯 这里是我疏忽了 
应该是char* 你需要注意的是 new char[size]得到是 char* 不是 char**

[解决办法]
delete[] reinterpret_cast<char*>(p_sc);

如果没有自定义的构造析构的话那干啥还要绕这么大圈子。直接new SomeClass()啊。编译器说是会生成默认构造函数,但也不要忘了还有空函数优化。
[解决办法]
delete [](char *) p_sc;

热点排行
Bad Request.