【发布时间】:2013-07-29 05:33:12
【问题描述】:
我正在用一些随机值初始化一个char 指针,当我试图删除它时,我无法删除它。这是为什么呢?
这是我正在做的事情:
int main()
{
char *s = new char[50]; /*
* I know there is no reason for
* using new if initializing, but
* in order to use delete we need
* to allocate using new.
*/
s = "Harry";
delete s;
return 0;
}
【问题讨论】:
-
请注意,当您删除一个数组而不是单个对象时,您需要使用
delete []而不仅仅是delete。不过,这不是您的代码的唯一问题。 -
每个人都忘了提到的是,
char* = "Harry";首先不是一个有效的表达式,符合当前标准 (C++11) 的编译器应该拒绝它。
标签: c++ pointers memory-management