Từ C99: khởi tạo mảng/struct không theo thứ tự, dùng chỉ mục hoặc tên thành viên. GNU C++ không hỗ trợ.
Mảng
int a[6] = {[3]=20, [5]=40}; // {0,0,0,20,0,40}
int a[6] = {[2...4]=10}; // {0,0,10,10,10,0}
Ví dụ phức tạp
int A[] = {10,20,30, [3...9]=100, [10]=65, 15, [80]=50, [42]=400};
// Size tự động = 81 (max index 80 + 1)
Struct
struct S { int x; float y; char z; };
struct S s1 = {.y=2.324, .z='f', .x=78};
struct S s2 = {.z='r'}; // x,y = 0