Probabilmente no, comunque in generale dipende dal compilatore.
Col compilatore microsoft (quello integrato in vc++) credo tu possa fare una cosa del genere
codice:
int a[10] = {1,2};
ma non questa
codice:
int a[10] = {1,2,};
o questa
codice:
int a[10] = {1,2, ,4, , ,6};
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.
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.