大家帮忙看看这个程序问题在哪?

chenzuzhang 2012-02-23 08:12:05
#include<stdio.h>
void copy_string(char *from, char *to)
{
for(;*from!='\0';from++,to++)
*to=*from;
*to='\0';
}
main()
{
char *a="I am a teacher.";
char *b="I am a student.";
printf("%s\n%s\n",a,b);
copy_string(a,b);
printf("%s\n%s\n",a,b);
}
输出结果:
I am a teacher.
I am a student.
并且弹出以下窗口:XX.exe-应用程序错误
"0x0040105e"指令引用的"0x00422024"内存。该内存不能为"written"。
...全文
158 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaoyang12345 2012-02-26
  • 打赏
  • 举报
回复
常量啦。。。。。不能改的。。
chenzuzhang 2012-02-26
  • 打赏
  • 举报
回复
谢谢大家,见过这个问题了,嘿嘿,忘了。
lzh8430 2012-02-25
  • 打赏
  • 举报
回复
C语言中用#define定义 const修饰的均是常量 以及字符串常量 这些都是存于内存只读区域,我们不能改变他们的值 你代码中进行了赋值,自然行不通
King0325 2012-02-24
  • 打赏
  • 举报
回复
2楼正解
querdaizhi 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 anyidan 的回复:]

引用 7 楼 qyee16 的回复:
这就是所谓的月经帖


日经了!
[/Quote]

嘿嘿
AnYidan 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qyee16 的回复:]
这就是所谓的月经帖
[/Quote]

日经了!
Qyee16 2012-02-23
  • 打赏
  • 举报
回复
这就是所谓的月经帖
warrioR_wx 2012-02-23
  • 打赏
  • 举报
回复
char *a = "***"
其实就是
const char *a = "***"
面包大师 2012-02-23
  • 打赏
  • 举报
回复
char *b="I am a student.";
这个也是
面包大师 2012-02-23
  • 打赏
  • 举报
回复
char *a="I am a teacher.";
"I am a teacher.";是文本字符串常量。
存入内存后它就算是常量了,因为已经使用一个non-const pointer to char指向它了。就不可以改变了
氰客 2012-02-23
  • 打赏
  • 举报
回复
关于字符常量的问题这个论坛已经、、、、
justkk 2012-02-23
  • 打赏
  • 举报
回复
char *a="I am a teacher.";
char *b="I am a student.";

a 和 b 存放在只读区域,不能被修改
可以改为数组
氰客 2012-02-23
  • 打赏
  • 举报
回复

#include<stdio.h>
void copy_string(char *from, char *to)
{
for(;*from!='\0';from++,to++)
*to=*from;
*to='\0';
}
int main()
{
char a[]="I am a teacher.";
char b[]="I am a student.";
printf("%s\n%s\n",a,b);
copy_string(a,b);
printf("%s\n%s\n",a,b);
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧