[讨论] 字串交换问题

楼主: ting301 ( )   2014-11-13 03:07:53
以下是我小的一个函数swap_part
目的是将字串内的两个变量作交换,
但我每执行后系统都会出现 "已停止运作"之消息,然后直接当掉
请问我有哪写的不妥嘛???
void swap_part(char *p, int m, int n)
{
char temp ;
temp = *(p+m);
*(p+m) = *(p+n);
*(p+n) = temp;
}
int main()
{
char *p = new char[10];
p = "012345678" ;
cout<<"p= "<< p <<endl;
swap_part(p,3,5);
swap_part(p,4,6);
cout<<"p= "<< p <<endl;
system("pause");
return 0;
}
作者: carylorrk (carylorrk)   2014-11-13 03:49:00
string literal 是 immutable,compiler 没有警告你不要用 char* 吗
作者: EdisonX (卡卡兽)   2014-11-13 08:29:00
strcpy( p , "012345678");
作者: chobitskey (爱而塔)   2014-11-14 15:08:00
p = "012345678" ;这一行表示指向字面常数你原本new的内存位置会消失,你后面要对常数做赋值当然错误,如果要对指标给值,要用*

Links booklink

Contact Us: admin [ a t ] ucptt.com