返回信息流char f1[]="abcde";
char* f2="zxc";
strcpy(f1,f2);
为什么把f1换成char*类型vc6.0下程序会异常呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #93372同步于 2016/9/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教一个strcpy函数的问题
A11W
2016/9/15镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
c语言中常量字符串在固定的内存区域中,char* f1 = "abcde" ,只是把f1指向了“abcde”的首地址,所以你不能给f1赋值。也就是楼上说的,你没有申请内存空间。
f2的用法是错的??
哪里错了?
【 在 cocoyimasa 的大作中提到: 】
: 因为没有申请内存空间。并且你f2的用法是错的,错误原因同上。编译无错不代表用法无错。
【 在 printing 的大作中提到: 】
: f2的用法是错的??
: 哪里错了?
严格地说,应该是const char*。毕竟字符串常量对应的内存空间是不可变的。
谢谢
【 在 skyye 的大作中提到: 】
: c语言中常量字符串在固定的内存区域中,char* f1 = "abcde" ,只是把f1指向了“abcde”的首地址,所以你不能给f1赋值。也就是楼上说的,你没有申请内存空间。