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; }无限递归,这会导致栈溢出,也会产生段错误。
本文详细探讨了C++编程中产生段错误的三种常见情况:修改只读内存、空指针赋值和无限递归。通过分析实例代码,解释了每种情况下的原理和后果,并提出了相应的解决策略。
296

被折叠的 条评论
为什么被折叠?



