C 从printf中获取分段错误

C 从printf中获取分段错误,c,null,C,Null,所以基本上我写了两个函数,从输入数组设置一个最小值和最大值,在这两个函数中,我想实现一个代码,当调用NULL而不是输入数组时返回“-1”。 代码如下所示 #include <stdio.h> #include <math.h> int array_min(const int input_array[], const int array_size); int array_max(const int input_array[], const int array_size);

所以基本上我写了两个函数,从输入数组设置一个最小值和最大值,在这两个函数中,我想实现一个代码,当调用NULL而不是输入数组时返回“-1”。 代码如下所示

#include <stdio.h>
#include <math.h>
int array_min(const int input_array[], const int array_size);
int array_max(const int input_array[], const int array_size);
int main(){
        int input_array[]={1,12,3,43,5};
        printf("%d\n", array_min(input_array, 5));
        printf("%d\n", array_max(input_array, 5));
        printf("%d\n", array_max(NULL, 5));
}
int array_min(const int input_array[], const int array_size){
        int min = input_array[0];
        for(int i=1; i<array_size; i++){
                if( input_array[i] < min){
                        min = input_array[i];
                }
        }
        return min;
}
int array_max(const int input_array[], const int array_size){
        int max = input_array[0];
        for(int a=1; a<array_size; a++){
                if(input_array == NULL){
                        return -1;
                }
                else{
                        if(input_array[a]>max){
                                max = input_array[a];
                        }
                }
        }
        return max;
}
#包括
#包括
int-array_-min(常量int-input_-array[],常量int-array_-size);
int-array_-max(常量int-input_-array[],常量int-array_-size);
int main(){
int输入_数组[]={1,12,3,43,5};
printf(“%d\n”,数组最小值(输入数组,5));
printf(“%d\n”,数组最大值(输入数组,5));
printf(“%d\n”,数组_max(NULL,5));
}
整数数组最小值(常数整数输入数组[],常数整数数组大小){
int min=输入_数组[0];

对于(int i=1;i问题是,在检查传入的
NULL
之前,您正在取消对指针的引用

 int max = input_array[0];

验证输入后执行此操作。

问题是,在检查传入的
NULL
之前,您正在取消对指针的引用

 int max = input_array[0];

验证输入后执行此操作。

在取消引用之前添加
NULL
检查。您希望如何处理此te
printf(“%d\n”,数组_max(NULL,5))
inside
array\u max
它不在
printf
调用中。相反,它发生在参数求值期间调用
printf
之前。
input\u array[0]
此取消引用
NULL
指针。在取消引用之前添加
NULL
检查。您希望如何处理此te
printf(“%d\n”,数组_max(NULL,5))
内部
array_max
它不在
printf
调用中。相反,它发生在参数求值期间调用
printf
之前。
input_array[0];
此取消引用
NULL
指针。