问题描述
我想编写一个函数,该函数给了我最大的数组,并且应该通过引用进行调用。 这是我的代码:
void max_array (int *array[],int len,int *max){
for (int i = 0; i < len; ++i) {
if (*max < &array[i]){
*max = array[i];
}
}
}
int main() {
void print_array (int array [],int len);
int array[] = {5,3,2,6,4,1};
int len = 8;
int max = 0;
max_array(array,len,&max);
printf("Max of Array: %d \n",max);
return 0;
}
就像您看到的一样,出了点问题。 我的输出就像158879987这样一个地址。
解决方法
您要在变量len中存储8,但是您的数组只有7个元素。
在函数中,您错误地指定了第一个参数。数组始终通过引用传递,您不需要*和[],选择一个。
void max_array (int *array,int len,int *max){
for (int i = 0; i < len; ++i) {
if (*max < array[i]){
*max = array[i];
}
}
}
请记住要更改len变量中的值。