c语言,字符串复制问题。

intmain(){char*strDest="abcd";char*strSrc="helloworld!";*strDest=*strSrc;//strDest=my... int main(){
char* strDest = "abcd"; char* strSrc = "hello world !"; *strDest = *strSrc; //strDest = mystrcpy(strDest,strSrc); puts(strDest); gets(strDest); return 0;}
运行到 *strDest = *strSrc;会提示内存访问冲突,如下图。
展开
 我来答
ih_khhh
2014-07-08 · TA获得超过217个赞
知道答主
回答量:79
采纳率:100%
帮助的人:14.2万
展开全部
指针 strDest 指向的是一个字符串常量。字符串常量存放在只读常量区,是不能修改的。
*strDest = *strSrc 试图修改这个只读常量区的内容,就出错了

可以用数组
int main()
{
char strDest[] = "abcd";
char strSrc[] = "hello world !";
*strDest = *strSrc; //这句只能改变数组strDest的第一个字符
//strDest = mystrcpy(strDest,strSrc);
puts(strDest);
gets(strDest);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
总该有办法吧
2014-07-08 · TA获得超过227个赞
知道小有建树答主
回答量:222
采纳率:93%
帮助的人:153万
展开全部
把定义改成这样就可以了
char strDest[] = "abcd";
char strSrc[] = "hello world !";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
porker2008
2014-07-08 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
都是字符常量区,不能往里面写东西的
追问
那么C++里的字符串怎么修改。
追答
你需要创建char数组
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式