Given
char foo[1024] = \"bar\";
This will initialize foo to contain \'b\',\'a\',\'r\',0 . Is the remaining 1020 characters zero initialized
Yes, the uninitialized array elements will be zeroes. Example:
If the initializer supplies too few elements, 0 is assumed for the remaining array elements:
int v5[8] = { 1 , 2 , 3 , 4 };
is equivalent to
int v5[] = { 1 , 2 , 3 , 4 , 0 , 0 , 0 , 0 };
If an array/aggregate is initialized somehow[edit: by use of a static initializer], the remaining unspecified entries are zeroed, yes.