帮忙看一下哪里有错误,windows停止运行了
#include<cstring>
void swap_str(char *str1,char *str2)
{
char* temp = "0" ;
strcpy(temp,str1);
strcpy(str1,str2);
strcpy(str2,temp);
}
int main()
{
char* str1 = "helloworld";
char* str2 = "ni hao";
cout<<"交换之前 "<<"str1: "<<str1<<" str2: "<<str2<<endl;
swap_str(str1,str2);
cout<<"交换之后 "<<"str1: "<<str1<<" str2: "<<str2<<endl;
return 0;
}
[解决办法]
//1 都是不只读区间存放的!read only 所以修改会报错!
char* str1 = "helloworld";
char* str2 = "ni hao";
//改成
char str1[10] = "helloworld";
char* str2[10] = "ni hao";
//2char* temp = "0" ;没有分配空间,拷贝的内容没有地方存放,内存出错
//改成
char temp[10] = {0};