代码如下:
#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文件,这个搞得我都懵逼了,不知道哪个前辈帮我解释下,谢谢了
c给空格字符赋值为空字符报段错误
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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'; //会段错误
数组保存在栈中,字符串保存在文字常量区,这部分是不可以修改的
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报