Zeiger Vektoren und fread()



  • Hallo,

    ich hab folgendes Problem mit einem Programm. Ich lese in einer Schleife eine gewisse Anzahl an strings aus einer zuvor erstellten Datei mit

    fread(&line, sizeof(line), 1, input);
    

    ein. Nun möchte ich gerne die Strings in einem char Zeiger Array

    char *Vektor[100];
    

    speichern. Leider funktioniert das nicht so wie ich mir das vorstelle. Direkte Zuweisungen mit z.B.

    Vektor[1]="Stefan";
    

    funktionieren aber sobald ich

    Vektor[1]=line;
    

    ausprobiere geht nichts mehr. Der Code wird aber einwandfrei kompiliert. Kann mir jemand helfen? 😞

    Danke
    flo



  • Habe das Problem nun lösen können. Lag daran das ich nur eine Adresse zugewiesen habe die nach Funktionsaustritt nicht mehr gültig war.

    Hab nun aber eine andere Frage 😃 . Wenn ich für einen Zeiger-Vektor dynamisch Speicher allokiere

    Vektor[1] = malloc(10 * sizof(int))
    
    int *Vektor[100]
    

    . Wird mit

    free(Vektor);
    

    auch der gesamte Vektor wieder freigegeben? Oder muss ich jeweils einzeln wieder lösen, z.B.

    free(Vektor[1]); ...
    

    ?

    MfG
    flo



  • musst du einzeln machen


Anmelden zum Antworten