我有时也看到过。但我不明白这个词的意思。
最佳答案
当您尝试访问无效地址时,就会发生这种情况。它可能看起来像这样:
int* a;
*a = 4;
或者这个:
struct s {
int a;
}
int main() {
struct s* foo;
foo->a = 4;
}
第一个示例中的变量 a
和第二个示例中的变量 foo
未初始化。它们不指向任何内存。如果您尝试为其赋值,则会发生段错误并且您的程序崩溃。
正确的做法是先初始化。
int* a = malloc(sizeof(int));
*a = 4;
// ...
free(a);
关于c - 术语 'Segmentation fault (core dumped)' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58956121/