Aus Struktur geladene Strings werden aneinandergehängt



  • Hi,

    ich hab zwei Eingabefelder.
    Den Feldern ist eine string-variable hinterlegt mit maximal 5 Zeichen.
    Den Inhalt dieser Felder speicher ich nun in zwei Feldern (char[5]) in meiner Struktur:
    UpdateData(true);
    strcpy(adressedlg_ptr->ad.ad_adresse.postfach, m_strpostfach);
    strcpy(adressedlg_ptr->ad.ad_adresse.email, m_stremail);
    und die Struktur als binäre Datei.

    Wenn ich weniger als 5 Zeichen eingeb, dann speicher und wieder öffne und die Felder wie folgt initialisiere
    m_strpostfach = adressedlg_ptr->vn.vn_adresse.postfach;
    m_stremail = adressedlg_ptr->vn.vn_adresse.email;
    UpdateData(false);

    dann ist alles wunderbar. 🙂

    Nun zu meinem Problem:
    Wenn ich so viele Zeichen wie möglich eingebe, also 5, dann speichere und wieder öffne...
    dann hab ich im Eingabefeld1 beide Strings aneinandergehängt und im Eingabefeld2 den korrekten Inhalt.
    Ich hab doch aber ein Feld mit der Länge 5 (char[5])? *Brett vorm Kopf* 😞

    bitte helft mir auf die Sprünge...
    Greets
    Geuse



  • C Grundlagen:

    Es sind nur 4 Zeichen möglich wegen \0. Da du die char[5] hintereinander deklarierst, liegen sie hintereinander im Speicher und werden wegen des fehlenden Endezeichens auch hintereinander ausgegeben.



  • war ne blöde Frage, aber ich kam grad nicht drauf. Danke schön 🙂


Anmelden zum Antworten