← board

An array designator inside a multi-dimensional initializer is refused

int e[4][3] = {{1}, [3] = {9}};   /* pxx: error: expected C expression */
printf("%d %d\n", e[0][0], e[3][0]);  /* gcc 1 9 */

Found 2026-09-27 while varying the unsized-outer-dimension fix in bug-c-an-array-of-pointers-to-arrays-has-no-pointee-shape-so-deref-loads-instead-of-decaying. The walk is the beFlat brace pre-scan in the local path; a designator at depth d sets the flat cursor to index * (product of the dims below d). File-scope arrays have not been measured.