【发布时间】:2020-01-28 02:01:48
【问题描述】:
尝试学习如何用 C 编写代码,遇到此错误。
制作一个获取年份并计算它是否是闰年然后打印结果的程序。
我得到的错误是分段错误(核心转储) 用 C 编码真的很新,不知道如何解决这个问题,并且错误不指向特定的行或任何东西。非常感谢一些建议,任何帮助。谢谢!
这是我的代码:
int isLeap(int date){
if(date%400 == 0){
return 1;
}
if(date%4 != 0){
return 0;
}
if(date%100 != 0){
return 0;
}
}
int year;
int green = 0;
while(green == 0){
printf("Enter a year: " );
scanf("%d", year);
if(year < 0){
green++;
}
if(isLeap(year) == 1){
printf("Year %d is a leap year.", year);
}
if(isLeap(year) == 0){
printf("Year %d is not a leap year", year);
}
}
return 0;
} ```
【问题讨论】:
-
scanf("%d", year);->scanf("%d", &year); -
使用调试器单步执行代码并查看程序崩溃的位置。
-
不要忘记编译时出现警告:
-Wall -
95% 的 *NIX 系统中的分段错误与指针、未初始化指针的使用或 @Christian Gibbons 所说的不正确使用有关
标签: c error-handling segmentation-fault