数组越界了一位,为什么输出的时候会有乱码?
程序如下,在初始定义大小为10个元素的数组中插入了一个数,数组越界了,但是输出的时候为什么会跟一堆乱码?#include<stdio.h>
#include<stdlib.h>
void inserer(int *s,int x,int *n){
int i,j=0;
while(j<*n && s[j]<x) j++;
for(i=(*n)-1;i>=j;i--) s[i+1]=s[i];
s[j]=x;
*n=(*n)+1;
}
void output(int *s,int *n){
int i; for(i=0;i<*n;i++) printf("%d ",s[i]);
printf("\n");
}
int main(void){
int s[10]={1,6,7,10,14,18,22,29,36,47},x;
int n=10; printf("Entrez un chiffre : ");
scanf("%d",&x);
printf("Le tableau precedent : ");
output(s,&n);
inserer(s,x,&n);
printf("Le nouveau tableau : ");
output(s,&n);
return EXIT_SUCCESS;
}
假如输入12,运行结果:
Entrez un chiffre : 12
Le tableau precedent : 1 6 7 10 14 18 22 29 36 47
Le nouveau tableau : 1 6 7 12 14 18 22 29 36 48 12 9900928 0 4199400 0 0 0 46 0 4225568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--------------------------------