Literarisch ich, nachdem ich nach viel zu viel Zeitinvestment endlich etwas automatisiert habe, was nicht unbedingt nötig gewesen wäre zu automatisieren (der lexikalische Analysator aus meinem letzten Pfosten funktioniert nun und ist mit ca 40 Zeilen auch relativ schlank. Er ist nicht perfekt, aber er funktioniert).

  • d_k_bo@feddit.org
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    10 days ago

    (IBKCP: Ich bin kein C-Programmierer)

    Versuchter Klugschiss
    typedef struct {
        char* name[VARIABLE_NAME_LENGTH];
        float value;
    } variable;
    
    fscanf(file, "%s %f", &data[i].name, &data[i].value)
    

    Das sieht mir gefährlich nach einem möglichen Pufferüberlauf aus. Wenn die Variable länger ist als VARIABLE_NAME_LENGTH - 1 (1 Zeichen wird für \0 benötigt), dann ist der Platz für die Zeichenkette zu klein.

    https://stackoverflow.com/questions/18845234/preventing-buffer-overflow-when-using-fscanf#18854941


    Edith: Was passiert eigentlich, wenn die Datei nicht dem von fscanf erwarteten Format entspricht? Ich glaube, da müssen noch irgendwo Fehler gehandhabt werden, sonst kommt es im späteren Verlauf wahrscheinlich zu Segmentierungsfehlern.