数组内容被改写,莫名其妙

```#include<stdio.h>
```#include<string.h>
```int getFactorsSum(int n){
    int sum =0;
    for(int t=1;t<n;t++){
        if((n%t) == 0){
            sum =sum + t;
        }

    }//end for
    return sum;
```}


```void main(){
    int perfect[10]={0},over[10]={0};
    int i =0,j = 0;
    for(int k=2;k<=60;k++){

        if(k==getFactorsSum(k)){
            perfect[i++]=k; 
        }

        if(k<getFactorsSum(k)){
            over[j++]=k;    
        }
    }//end for

    printf("Perfect numbers are\n");
    for(k=0;k<i;k++){
        printf( "%d\t",perfect[k]);
    }
    printf("\n");

    printf("Over numbers are\n");
    for(k=0;k<j;k++){
        printf("%d\t",over[k]);
    }
    printf("\n");
}

求完数和盈数那个程序,一开始perfect数组里面存有6和28但是后面被56和60覆盖掉了,什么原因啊?

over数组申请空间太小,导致溢出直接覆盖了perfect数组里的数据。把over数组调大点就可以了