vs2010中使用strcpy报错,弹出strcat.asm窗口,请c语言专家给我这个初学者解答一下,非常感谢啊!

2024-12-15 12:11:02
推荐回答(4个)
回答1:

“abc”是存在只读属性数据区,语句char *w1 = "123";是将这块只读属性数据区的首地址赋给w1,w1不能做strcpy的目的操作数;
将char* w1 = "123";该为char w1[] = "123";执行就应该没什么问题了。
字符串"abc"定义在字符数组w1里,“abc”是存放在堆栈中的,当你把w1的值传给函数strcpy()里的dst时候,w1指向堆栈空间,这个区域是可以读写的,所以不会出现段错误了

回答2:

我想可能是因为你定义的两个字符指针在使用strcpy函数的时候指针值改变,导致地址相同,出现错误,你可以把它改成字符数组

回答3:

vs2010用不了strcpy();好像是因为这个函数有缺陷。
我也很烦,在VC6.0运行的好好的,在2010就运行不了。

回答4:

字符指针是常量,不能重新赋值