无缘无故的C段错误

C segmentation fault for no reason

我正在学习 edx 的 cs50 课程,运行 我的 C 代码遇到了问题。 它没有明显的原因给了我一个分段错误,而且这类问题的所有其他答案都太复杂了,我无法理解(我是初学者) 这是一个二进制搜索函数,如果找到值,它将 return 为真,否则它将 return 为假。 代码如下:

bool searchtruth(int vals[],int minimum, int maximum, int findval)
{
    int min = minimum;
    int max = maximum;
    if(min - max == 1 && (findval < max &&findval > min))
    {
        return false;
    }
    int mid = min + ((min - max) / 2);
    if(vals[mid] == findval)
    {
        return true;
    }
    else if(vals[mid] < findval)
    {
        return searchtruth(vals, mid , max, findval);
    }
    else if(vals[mid] > findval)
    {
        return searchtruth(vals, min , mid , findval);
    }
    else
    {
        return false;
    }

}

代码中有两个地方用到了

min - max

两个地方都应该是

max - min