“abc”是存在只读属性数据区,语句char *w1 = "123";是将这块只读属性数据区的首地址赋给w1,w1不能做strcpy的目的操作数;
将char* w1 = "123";该为char w1[] = "123";执行就应该没什么问题了。
字符串"abc"定义在字符数组w1里,“abc”是存放在堆栈中的,当你把w1的值传给函数strcpy()里的dst时候,w1指向堆栈空间,这个区域是可以读写的,所以不会出现段错误了
我想可能是因为你定义的两个字符指针在使用strcpy函数的时候指针值改变,导致地址相同,出现错误,你可以把它改成字符数组
vs2010用不了strcpy();好像是因为这个函数有缺陷。
我也很烦,在VC6.0运行的好好的,在2010就运行不了。
字符指针是常量,不能重新赋值