【发布时间】:2011-05-23 22:26:08
【问题描述】:
只是为了测试,我创建了以下代码:
#include<stdio.h>
int main(){
char *p = "Hello world";
*(p+1) = 'l';
printf("%s", p);
return 0;
}
但是当我在 ubuntu 10.04 下的“gcc”编译器上运行它时,我得到了:
Segmentation fault
那么任何人都可以解释为什么会发生这种情况。
#include<stdio.h>
#include<stdlib.h>
int main(){
char *p = malloc(sizeof(char)*100);
p = "Hello world";
*(p+1) = 'l';
printf("%s", p);
free(p);
return 0;
}
这也会导致分段错误 提前致谢
【问题讨论】:
-
...以及过去几年中大约 2 打其他 SO 问题。
标签: c gcc segmentation-fault