1,
int main(void) { char *s = "hello world"; *s = 'H'; }被装载时,系统把“hello world” 连同其它的字符串和const型数据放入到内存的只读区。执行时,一个变量s被设为指向该字符串的位置,当再试图向该位置写时,就会产生段错误。 2,
int *ptr = NULL; *ptr = 1;因为该代码只创建了一个空指针,并没有指向一个具体空间,当赋值时,产生段错误。 3,
int main(void) { main(); return 0; }无限递归,这会导致栈溢出,也会产生段错误。