Cplusplusrookie 2017-06-26 08:07 采纳率: 50%
浏览 1312
已采纳

c给空格字符赋值为空字符报段错误

代码如下:
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
int main(void) {
// your code goes here
char *temp = "GET / HTTP/1,1";
char *url = strpbrk(temp," ");
printf("%s\n",url);
*url++ = '\0';
char *method = temp;
printf("%s\n",method);
return 0;
}
就这么简单的一段程序,在*url++='\0';上报段错误,我的linux不知道为什么神经又
不产生core文件,这个搞得我都懵逼了,不知道哪个前辈帮我解释下,谢谢了

  • 写回答

5条回答 默认 最新

  • 梦里花开富贵 2017-06-26 08:34
    关注
     int main(void) {
        // your code goes here
        char str[20] = {'G','E','T',' ','/',' ','H','T','T','P','/','1',',','1'};
        *str = '\0'; // 不会段错误
    
    
        char *temp = "GET / HTTP/1,1";
        *temp = '\0'; //会段错误
    

    数组保存在栈中,字符串保存在文字常量区,这部分是不可以修改的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突