问一个delete问题
TCHAR *tmp=new TCHAR[255];
delete tmp;
请问这个删除对不对啊
[解决办法]
delete tmp;
修改为delete[] tmp;
new的时候有[],delete也要有[]
[解决办法]
如果TCHAR是需要用构造函数来建造的类,那就该写成delete []tmp;
其实既然你用了new TCHAR[255],那用delete[]tmp就没错了。
[解决办法]
配对吧,不要做这些不规范的事情。
有的编译器或许会为你解决,当时代码不要做这些。
[解决办法]
如果是内置类型,则是等价的。
最好用delete [] xx 配对new xx[]
[解决办法]
delete用法:
1. int *a = new int;
delete a; //释放单个int的空间
2.int *a = new int[5];
delete [] a; //释放int数组空间
要访问new所开辟的结构体空间,无法直接通过变量名进行,只能通过赋值的指针进行访问.
用new和delete可以动态开辟,撤销地址空间.在编程序时,若用完一个变量(一般是暂时存储的数组),下次需要再用,但却又想省去重新初始化的功夫,可以在每次开始使用时开辟一个空间,在用完后撤销它.
[解决办法]
我来总结下,怎么New出来的就怎么删除吧。p = new char,那么delete p;如果p=new char[10],那么delete[] p
嘿嘿
[解决办法]
我也是不太清楚 来学习的
[解决办法]
配对使用。
new 出来的数组要用数组的删除方式.。
参见Effective C++ 条款8