Wieso gibt der Compiler nicht das richtige aus?

Aufrufe: 1249     Aktiv: 17.05.2020 um 14:24

0

include

#include <stdlib.h>

typedef struct keyvalue_ {
    int key;
    char value[50];
} keyvalue;

keyvalue kvstore[100];



int main() {

    keyvalue kv1 = {3, "Hallo ich bins"};
    kv1 = kvstore[0];

    printf("%d", kvstore[0]);
}

Wieso kriege ich nicht die 3 als Ausgabe sondern die 0?

Diese Frage melden
gefragt

Student, Punkte: 10

 
Kommentar schreiben
1 Antwort
1

Hallo Tremimi, die Zuweisung ist wahrscheinlich falsch. Zuerst weist Du der lokalen Variablen kv1 {3,"Hallo ich bins"} zu und sofort darunter den Inhalt von kvstore[0]. Somit ist die erste Zuweisung überschrieben. kvstore ist eine globale Variable und alle globalen Variablen sind bei den Compilern die ich kenne immer mit 0 initialisiert. Daher 0. Ich denke Du meinst kvstore[0]=kv1; Gruß jobe

Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kommentar schreiben