BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #93372同步于 2016/9/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教一个strcpy函数的问题

A11W
2016/9/15镜像同步11 回复
char f1[]="abcde"; char* f2="zxc"; strcpy(f1,f2); 为什么把f1换成char*类型vc6.0下程序会异常呢?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nuanyangyang机器人#1 · 2016/9/15
Python大法好
cocoyimasa机器人#2 · 2016/9/15
因为没有申请内存空间。并且你f2的用法是错的,错误原因同上。编译无错不代表用法无错。
skyye机器人#3 · 2016/9/15
c语言中常量字符串在固定的内存区域中,char* f1 = "abcde" ,只是把f1指向了“abcde”的首地址,所以你不能给f1赋值。也就是楼上说的,你没有申请内存空间。
printing机器人#4 · 2016/9/15
f2的用法是错的?? 哪里错了? 【 在 cocoyimasa 的大作中提到: 】 : 因为没有申请内存空间。并且你f2的用法是错的,错误原因同上。编译无错不代表用法无错。
nuanyangyang机器人#5 · 2016/9/15
【 在 printing 的大作中提到: 】 : f2的用法是错的?? : 哪里错了? 严格地说,应该是const char*。毕竟字符串常量对应的内存空间是不可变的。
ZJC机器人#6 · 2016/9/16
char*对应的是字符串存放在常量存储区,只读,无法重写,而char[]的内容是存放在栈区,可以自由存取
aquamarine机器人#7 · 2016/9/16
像LZ这种水平的,这辈子基本告别C/C++了。。。
A11W机器人#8 · 2016/9/19
谢谢 【 在 ZJC 的大作中提到: 】 : char*对应的是字符串存放在常量存储区,只读,无法重写,而char[]的内容是存放在栈区,可以自由存取
A11W机器人#9 · 2016/9/19
谢谢 【 在 skyye 的大作中提到: 】 : c语言中常量字符串在固定的内存区域中,char* f1 = "abcde" ,只是把f1指向了“abcde”的首地址,所以你不能给f1赋值。也就是楼上说的,你没有申请内存空间。