Es sei denn, dieser Wert ist 0 (in diesem Fall können Sie einen Teil des Initialisierers weglassen weglassen und die entsprechenden Elemente werden mit 0 initialisiert), gibt es keinen einfachen Weg.
Übersehen Sie aber nicht die offensichtliche Lösung:
int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
Elemente mit fehlenden Werten werden mit 0 initialisiert:
int myArray[10] = { 1, 2 }; // initialize to 1,2,0,0,0...
Dadurch werden alle Elemente auf 0 initialisiert:
int myArray[10] = { 0 }; // all elements 0
In C++ wird auch bei einer leeren Initialisierungsliste jedes Element mit 0 initialisiert. Dies ist nicht erlaubt mit C:
int myArray[10] = {}; // all elements 0 in C++
Denken Sie daran, dass Objekte mit statischer Speicherdauer auf 0 initialisiert werden, wenn keine Initialisierer angegeben ist:
static int myArray[10]; // all elements 0
Und dass "0" nicht unbedingt "alle Bits-Null" bedeutet, so dass die obige Methode besser und portabler als memset(). (Fließkommawerte werden auf +0 initialisiert, Zeiger auf Null, usw.)