十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、秦都ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的秦都网站制作公司
void swap(char *a, char *b){
int ch;
while(*a *b)
ch=*a,*a=*b,*b=ch,a++,b++;
if(*a){
*b++=*a,*a++='\0';
while(*b++=*a++);
}
else if(*b){
*a++=*b,*b++='\0';
while(*a++=*b++);
}
}
把free(temp)注释就好了,str2指向temp内存,释放掉了,printf处自然报错,或者temp不申请内存,去掉free(temp)
调用的是std::swap(这个函数,而不是你写的这个,要验证也很简单,你可以在你写的swap里加一行cout就知道了,不会输出。
1,可以去掉using namespace std,这样编译器会警告甚至错误,警告的情况下你也不能正确交换指针。
2,如果你使用其他std的东西,那请在main里调用swap时,写成::swap,编译器就会给警告甚至错误了,并且也不能正确交换。
3,如果不想这么改,把它改成swap1即可。