The initialization list can only be used in variable declarations, i.e. you can't use it in ordinary assignment expressions like a[0] = {0}.

You have to remember that an array of arrays is just that, an array of arrays. The elements in the first array are all individual arrays of the defined element type. A change on one of the subarrays doesn't automatically reflect on the other subarrays.