c++中new分配的内存能否使用free释放?
本文介绍了c++中new分配的内存能否使用free释放?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
c++中new和free可以结合使用吗?
如下例,我new一个char数组,使用free释放,会不会造成生成什么安全问题?
代码可以编译运行,谢谢各位大神指点。
char * ch = new char[10];
for (int i = 0; i < 10; i++)
{
ch[i] = '0' + i;
}
free(ch);
解决方案
new
和delete
必须成对的使用,不能和malloc|free
混合使用,
你那么写可能对于基本类型是没有问题的,但是一旦设涉及到构造函数与析构函数就不行了,养成习惯是非常重要的,
而且标准库貌似没有规定new
一定要使用malloc
来实现,所以new
的东西还是需要delete
,而不是free
这篇关于c++中new分配的内存能否使用free释放?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文