为什么会发生堆栈损坏
1 #include<stdio.h>
2 #define N 5
3 void input(int *p);
4 void output(int *p);
5 int main(void)
6 {
7 int op = 0;
8 int a[N] = {0};
9 while(1)
10 {
11 printf("请输入选项\n");
12 printf("1-input\n");//输入
13 printf("2-output\n");//输出
14 printf("3-calPmax\n");//最大值
15 printf("4-average\n");//平均值
16 printf("5-sort\n");//排序
17 printf("-1-exit\n");//推出
18 scanf("%d",&op);
19 if(-1 == op)
20 {
21 break;
22 }
23 switch(op)
24 {
25 case 1:
26 input(&a[N]);
27 break;
28 case 2:
29 output(&a[N]);
30 break;
31 }
32 }
33 return 0;
34 }
35 //输入
36 void input(int *p)
37 {
38 int i = 0;
39 for(i = 0;i < N;i++)
40 {
41 scanf("%d",(p+i));
42 }
43 }
44 //输出
45 void output(int p)
46 {
47 int i = 0;
48 for(i = 0;i < N;i++)
49 {
50 printf("%d ",(p+i));
51 }
52 printf("\n");
53 }