int t[1000000];
int main(){}
This code (as a .cpp file) produces a small binary when compiled with g++. If I would later use the array t, it would have all it's elements set to 0.
int t[1000000]={1,2,3};
int main(){}
This one, even if compiled with optimization for size (-Os), produces a binary file that is nearly 4M big. The array t is the same as in the first example, except t[0], t[1] and t[2] are set to 1, 2 and 3 respectively. Why does storing those three numbers require so much extra file size?
tested on linux, gcc version 5.4.0