It depends on the storage of the array.
If it has static storage, i.e. declared outside of any function or
declared with static in a function, then all the elements will be NULL
If it is declared in a function, without static, it will have
automatic storage and the initial values will be indeterminate
The standard happens to be quite clear and helpful in this matter:
If an object that has automatic storage duration is not initialized
explicitly, its value is indeterminate. If an object that has static
or thread storage duration is not initialized explicitly, then:
- if it has pointer type, it is initialized to a null pointer;
- if it has arithmetic type, it is initialized to (positive or unsigned) zero;
- if it is an aggregate, every member is initialized (recursively) according to these rules, and any padding is initialized to zero
bits;