数组未初始化的测试结果
#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
数组未初始化的测试结果,该如何解决
数组未初始化的测试结果#includestdio.hintmain(intargc,char*argv[]){intdata[10]intdd[10]printf(
