Strange-Werte beim Initialisieren des Arrays mit festgelegten Initialisierern

Wenn ich das Array unten initialisiere, sieht die Ausgabe ok aus, mit Ausnahme vonvalues[3]. Aus irgendeinem Grundvalues[3] initialisiert alsvalues[0]+values[5] gibt eine sehr große Zahl aus. Ich vermute, dass ich versuche, @ zuzuweisvalues[0]+values[5], bevor sie richtig im Speicher gespeichert sind, aber wenn jemand das erklären könnte, wäre das großartig.

int main (void)
{

    int values[10] = { 
        [0]=197,[2]=-100,[5]=350,
        [3]=values[0] + values[5],
        [9]= values[5]/10
    };

    int index;

    for (index=0; index<10; index++)
        printf("values[%i] = %i\n", index, values[index]);


    return 0;
}

Die Ausgabe ist wie folgt:

values[0] = 197
values[1] = 0
values[2] = -100
values[3] = -1217411959
values[4] = 0
values[5] = 350
values[6] = 0
values[7] = 0
values[8] = 0
values[9] = 35

Antworten auf die Frage(10)

Ihre Antwort auf die Frage