Probabilmente no, comunque in generale dipende dal compilatore.
Col compilatore microsoft (quello integrato in vc++) credo tu possa fare una cosa del genere
ma non questacodice:int a[10] = {1,2};
o questacodice:int a[10] = {1,2,};
Ma in generale, se posso permettermi, un approccio di questo tipo è sbagliato. Il C non è un linguaggio di scripting, è un linguaggio di livello molto basso e delegare la gestione della memoria all'arbitrarietà del compilatore può essere rischioso e in alcuni casi disastroso.codice:int a[10] = {1,2, ,4, , ,6};
Cioè, nel caso del primo esempio, che probabilmente visual studio ti compilerà, finchè non inizializzi esplicitamente le celle da 2 a 9 il dato in esse contenuto è un dato arbitrario. Può capitare che inavvertitamente, o per errore, o per mille altri motivi, tu vada a leggere quella variabile trovandoci dentro della spazzatura dando luogo a comportamenti inaspettati.
Ti suggerisco in generale una accurata ed esplicita gestione della memoria.

Rispondi quotando