Ho trovato questo codice su reddit. Avrei pensato che le conversioni di tipo avrebbero reso questo non valido.Perché è valido C
int a[3] = { { {1, 2}, {3, 4}, 5, 6 }, {7, 8}, {9}, 10 };
Su clang, ho un paio di avvertimenti su elementi eccessivi e bretelle in un inizializzatore scalare. Ma il contenuto di a
è [1, 7, 9]
.
Questo è effettivamente legittimo, e se lo è, qualcuno potrebbe spiegare cosa sta succedendo esattamente?
+1, molto interessante. – ApprenticeHacker
Con gcc ricevo 24 avvisi. Grande domanda. Vivo e imparo :-) – gbulmer
Yay gcc! Almeno ricevi un avvertimento. – boatcoder