Arch Linux下C语言程序出现Segmentation fault (core dumped)如何解决?
解决scanf导致的Segmentation Fault错误
你的代码中scanf("%d", age);是错误的根源。scanf函数要求第二个参数传入变量的内存地址,而非变量本身的值。你直接传递age时,程序会将age的初始随机值当作内存地址,尝试向这个非法地址写入数据,从而触发Segmentation Fault(段错误)。
修正后的代码:
#include<stdio.h> int main(){ int age; scanf("%d", &age); // 添加&取地址符,传递变量的内存地址 printf("age = %d", age); return 0; }
使用你原有的编译和运行命令即可正常执行:
- 编译:
gcc -o test1 test1.c - 运行:
./test1
执行后输入整数,程序会正确读取并输出你的输入值。
内容的提问来源于stack exchange,提问作者Nibenyi
相关产品推荐
相关产品推荐

