我正在尝试打印数组元素的最大值。程序编译得很好,但当我输入数组值时,我会收到以下消息***检测到堆栈粉碎***:已终止。我做错了什么?
#include <stdio.h>
int get_max(int ar[5]) {
int i;
for (i=0;i<5;i++) {
scanf("%d", &ar[i]);
}
int max = ar[0];
for (i=0;i<5;i++) {
if (max < ar[i])
max = ar[i];
}
}
return max;
}
int main() {
int a;
int k;
k = get_max(&a);
printf("%d",k);
return 0;
}
您正在为一个int
分配空间,将其地址传递给函数,并试图将其视为五个int
的数组。
如果要传递数组,请声明一个数组。
但实际上,在main()
中声明a
并将其传递给函数似乎根本没有意义。只需在函数中本地声明数组即可。