如果我尝试删除一个字符,我会收到访问冲突错误.
继承我的代码:
int main()
{
char *myString = new char[32];
myString = "Hello";
cout << myString;
cin.get();
delete [] myString;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我也试过了
delete myString
Run Code Online (Sandbox Code Playgroud)
但我仍然得到访问违规错误
行后
myString = "Hello";
Run Code Online (Sandbox Code Playgroud)
指针myString不再指向您已分配的数组,而是指向字符串文字.这条线
delete [] myString;
Run Code Online (Sandbox Code Playgroud)
然后尝试删除文字(导致崩溃).
您可以使用strcpy或更好地复制字符串std::string.
std::string myString = "Hello";
cout << myString;
Run Code Online (Sandbox Code Playgroud)