【发布时间】:2014-09-01 00:51:39
【问题描述】:
#include <iostream>
using namespace std;
char *CopyOf(const char *str);
void main(void)
{
char *hello = CopyOf("Hello\n");
cout << hello;
delete [] hello;
system("pause");
}
char *CopyOf(const char *str)
{
char *copy = new char(strlen(str) + 1);
strcpy(copy, str);
return copy;
}
我的错误发生在程序运行到 delete 语句时。有什么建议吗? 非常感谢。
【问题讨论】:
-
你正在分配一个
char。 -
My error occurs when the program runs into delete statement。不,您的错误发生在调用strcpy时。这是发生在代码中在代码崩溃之前的某个位置的内存损坏的主要示例。 -
你怎么知道有错误?您确实没有将其包含在您的问题中。你有编译器错误吗?运行时崩溃?描述你的结果!
-
RE:“我的问题已解决编辑” 工作流程是您可以通过勾选您认为对您最有帮助的答案来接受答案。为什么你会想要是另一个问题,反对票的欢迎并不那么热烈。但是……假装它们不存在,积分是假的,只是吸收信息。 :-)
-
我无法为您的答案投票,因为我没有足够的声誉。对不起
标签: c++ memory-management