gpt4 book ai didi

c - 如何修复 "segmentation fault (core dumped)"?

转载 作者:行者123 更新时间:2023-11-30 20:57:33 26 4
gpt4 key购买 nike

我对此很陌生,并尝试编写一个代码来使用头文件查找两个数字之间的最大值和最小值。我很确定我做错了,所以如果有人能帮助指导我,那就太有帮助了

#include <stdio.h>
#include <maxmin.h>
int main()
{

//declare variables
float maximum;
float minimum;
float n1;
float n2;

//get numbers
printf("Enter two numbers:");
scanf("%f%f",&n1,n2);

//call functions
maximum= max(n1, n2);
minimum= min(n1, n2);

//print results
printf("maximum= %f\n", max);
printf("minimum= %f\n", min);
return 0;
}

这是头文件:

// function to find max
float max(float n1, float n2)
{
return(n1>n2) ? n1 : n2;
}

//function to find min
float min(float n1, float n2)
{
return(n1 > n2) ? n2 : n1;
}

最佳答案

当您尝试访问非法内存时会导致段错误。造成这种情况的一些常见原因是尝试访问不存在的数组的索引(例如尝试访问只有两个元素的数组中的第三个元素)或尝试访问尚未初始化的变量。请参阅this回答更详细的解释。

就您而言,您正在尝试访问未初始化的变量。

这些行...

printf("Enter two numbers:");
scanf("%f%f",&n1,n2);

对此...

printf("Enter two numbers:");
scanf("%f%f",&n1,&n2);

您在 n2 之一前面缺少 &

并更改这些行...

printf("maximum= %f\n", max);
printf("minimum= %f\n", min);

成为这样...

printf("maximum= %f\n", maximum);
printf("minimum= %f\n", minimum);

在您的代码中,maxminmaxmin.h 中定义的函数,而 maximumminimum 是在计算最大值和最小值时初始化并写入的变量。

关于c - 如何修复 "segmentation fault (core dumped)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58332423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com