C 从printf中获取分段错误
所以基本上我写了两个函数,从输入数组设置一个最小值和最大值,在这两个函数中,我想实现一个代码,当调用NULL而不是输入数组时返回“-1”。 代码如下所示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);
#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
检查。您希望如何处理此teprintf(“%d\n”,数组_max(NULL,5))
insidearray\u max
它不在printf
调用中。相反,它发生在参数求值期间调用printf
之前。input\u array[0]
此取消引用NULL
指针。在取消引用之前添加NULL
检查。您希望如何处理此teprintf(“%d\n”,数组_max(NULL,5))
内部array_max
它不在printf
调用中。相反,它发生在参数求值期间调用printf
之前。input_array[0];
此取消引用NULL
指针。