变量初始化问题

今天在项目中遇到一个很小的问题,确导致系统偶然性的瘫痪,原来问题就是一个小小的变量在初始化时出了点问题。

int a[100];

 

ZeroMemory(a, sizeof(a)/sizeof(int));

printf(a[99]); ==>输出的是一个随机数

ZeroMemory(a, sizeof(a));

printf(a[99]);===〉输出0

 

int a[100]在内存中占100个地址空间,共400个字节的地址位,于是第一种方式初始化时相当于只初始化了前100个字节的地址空间,所以从a[25]开始的地址空间都没有初始化,是系统自动分配的一个随机值;而第二种方式 就是对400个字节的地址空间全部初始化了。

 

最后,让我又想到小时候学的一篇课文,是关于一个 小小螺丝钉。这个问题就是整个项目中一个小了不能再小的螺丝钉了,于是记录下,给自己一个警钟。

你可能感兴趣的:(变量初始化问题)