数组未初始化的测试结果,该如何解决

数组未初始化的测试结果#includestdio.hintmain(intargc,char*argv[]){intdata[10]intdd[10]printf(

数组未初始化的测试结果
#include   <stdio.h>
int   main(int   argc,   char   *argv[])
{
int   data[10];
int   dd[10];
printf( "dd   before   %d\n ",   dd[8]);
scanf( "%d ",   &dd[5]);
printf( "data1     %d\n ",   data[1]);
printf( "data2     %d\n ",   data[2]);
printf( "data3     %d\n ",   data[3]);
printf( "data4     %d\n ",   data[4]);
printf( "data5     %d\n ",   data[5]);
printf( "data6     %d\n ",   data[6]);
printf( "data7     %d\n ",   data[7]);

printf( "dd0     %d\n ",   dd[0]);
printf( "dd1     %d\n ",   dd[1]);
printf( "dd2     %d\n ",   dd[2]);
printf( "dd3     %d\n ",   dd[3]);
printf( "dd4     %d\n ",   dd[4]);
printf( "dd5     %d\n ",   dd[5]);
printf( "dd6     %d\n ",   dd[6]);
printf( "dd7     %d\n ",   dd[7]);
}
一个数组的没有初始化的位置,要么是0,要么是一个内存地址,输出结果如下
dd   before   -12846420
88
data1     0
data2     0
data3     0
data4     -4197136
data5     66784
data6     -12846420
data7     0
dd0     0
dd1     -13385728
dd2     0
dd3     0
dd4     0
dd5     88
dd6     0
dd7     -12654668

[解决办法]
对于全局变量,为初始化的数组初始值为0
对于局部变量,和对上申请的变量,都是上一次操作这个内存的语句留下来的垃圾,鬼知道会是什么
[解决办法]
对于全局变量,为初始化的数组初始值为0
对于局部变量,和对上申请的变量,都是上一次操作这个内存的语句留下来的垃圾,鬼知道会是什么


补充一下,静态量也会自动初始为0