求助一个关于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

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务