c-***检测到堆栈粉碎***:已终止

  • 本文关键字:终止 堆栈 c stack-smash
  • 更新时间 :
  • 英文 :


我正在尝试打印数组元素的最大值。程序编译得很好,但当我输入数组值时,我会收到以下消息***检测到堆栈粉碎***:已终止。我做错了什么?

#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并将其传递给函数似乎根本没有意义。只需在函数中本地声明数组即可。

相关内容

  • 没有找到相关文章

最新更新