求助:C函数字符串反转

bb神猪 2016-11-16 11:33:48
#include <stdio.h>
#include <string.h>

int main()
{
char *string = "abcdef";
char tmp;
int len = strlen(string),i = 0;

printf("string before reverse:%s.\n",string);
for(i = 0;i <= len/2;i++){
tmp = *(string+i);
printf("1\n");
*(string+i) = *(string+len-i-1); //出现段错误
printf("2\n");
*(string+len-i-1) = tmp;
}

printf("string after reverse:%s.\n",string);

return 0;

}


请问下为什么在上面注释那段会出现段错误。
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang0635 2016-11-16
  • 打赏
  • 举报
回复
有的系统把字符串常量存到设置为只读属性的内存段中
wang0635 2016-11-16
  • 打赏
  • 举报
回复
char *string = "abcdef"; 改成 char string[] = "abcdef";

69,382

社区成员

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

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