Возможный дубликат:
Почему глобальные и статические переменные инициализируются значениями по умолчанию?
См. код,
#include <stdio.h>
int a;
int main(void)
{
int i;
printf("%d %d\n", a, i);
}
Выход
0 8683508
Здесь "a" инициализируется "0", но "i" инициализируется "значением нежелательной почты". Почему?