求助一个关于strcpy()函数的问题

为什么这样写:
char *str="hello";
strcpy(str,"h");
会出错。
但是这样写:
char *str=(char *)malloc(sizeof(char)*10);	
strcpy(str,"h");
就可以呢?

全部评论
char *str = "hello" ,str指向c风格字符串,即常量。 建议你看看c语言内存分布,str指向文字常量区,不能被更改。见到指针就应该先想一想它指向的内存在哪里 j
点赞 回复 分享
发布于 2016-08-23 22:23
你说的第一种情况,指针指的是常量,不能修改,所以报错了。第二种情况是堆上开辟了空间,可以修改值
点赞 回复 分享
发布于 2016-08-23 22:00
不能修改常量
点赞 回复 分享
发布于 2016-08-23 22:04

相关推荐

不愿透露姓名的神秘牛友
07-29 14:02
纠结的茶叶蛋在开会:太简单了,技术和业务没一个够用的,要么学业务,去搞erp或者his,要么专精技术,去搞架构
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务