>The C++ Programming Reference (Stroustrup) says "If there are >fewer initializers in the list than there are members of the >aggregate, then the aggregate is padded with zeros of the >appropriate types". >Not sure about plain C...

ANSI C says:

"If there are fewer initializers in a brace-enclosed list than there are members of an aggregate, the remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration."

Earlier:

"If an object that has static storage duration is not initialized explicitly, it is initialized implicitly as if every member that has arithmetic type were assigned 0 and every member that has pointer type were assigned a null pointer constant."