首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扫描后的SegFault?

扫描后的SegFault?
EN

Stack Overflow用户
提问于 2010-06-29 04:37:24
回答 4查看 2.5K关注 0票数 2
代码语言:javascript
复制
#include <stdio.h>
#define TimeConverter 60
#define TempFormula time * time * 4 / time + 2 - 20

double HoursMinToTime(int hour, int min);

double Temperature(double time);

int main()
{
    int hour, min;
    double time, temperature;
    printf("Hours and minutes: ");
    scanf("%d %d", hour, min);
    //Segfault HERE
    time = HoursMinToTime(hour, min);
    temperature = Temperature(time);
    printf("After a %lf hour power failure, the frezer will be %lf degrees", time, temperature);
    return 0;
}
double HoursMinToTime(int hour, int min)
{
    double time = hour * min / TimeConverter;
    return time;              
}
double Temperature(double time)
{
    double temp;
    temp = TempFormula;
    return temp;
}

为什么在scanf之后会有一个分段错误?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-29 04:39:09

scanf需要将变量的地址传递给它。将scanf替换为

代码语言:javascript
复制
scanf("%d %d",&hour,&min);

你应该可以走了。

票数 6
EN

Stack Overflow用户

发布于 2010-06-29 04:38:56

您需要传递这些变量的地址。一定要特别注意函数签名,因为你可能会得到非常奇怪的结果。另外,打开编译器的所有警告。

代码语言:javascript
复制
scanf("%d %d", &hour, &min); 
票数 4
EN

Stack Overflow用户

发布于 2010-06-29 04:39:39

代码语言:javascript
复制
scanf("%d %d", &hour, &min);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3135946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档