Sonderbare Werte im Array



  • Hallo,

    ich lege in meinem Programm ein Array fester Größe an, das komische ist nur, dass dort bereits direkt nach dem deklarieren etwas enthalten ist obwohl noch kein Wert initialisiert wurde.

    char ds[FC6_MAX_NAME_LEN +1];
    cout << "ds: " << ds <<endl;
    

    Das Ergebnis der Ausgabe ist dann:

    <80>k^"

    Warum ist das so? Wie bekomme ich das weg? (Und ich will die Werte nicht mit Leerzeichen überschreiben, da es Funktionen gibt, die Werte in dem Array hinten ranhängen).

    mfg chuqa



  • Chuqa schrieb:

    da es Funktionen gibt, die Werte in dem Array hinten ranhängen

    Und wie definiert sich "hinten" bei diesem Array? Da hast du die Antwort.



  • Hinten definiert sich als die nächste freie Stelle. Wenn ich die Länge mit strlen(ds) ermittle und dann die Zeichen mit Leerzeichen überschreibe, wird nach den Leerzeichen angefügt, genau das soll ja nich der Sinn der Sache sein.

    Ich habe es jetzt anders gelöst. Ich füge einfach für die Länge des bereits enthaltenen Strings an jede Stelle ein '\0' ein (wahrscheinlich meinst du das mit hinten ;)). danke.

    mfg chuqa



  • Chuqa schrieb:

    Hinten definiert sich als die nächste freie Stelle.

    Es gibt bei Arrays keine "freie Stelle".

    Wenn ich die Länge mit strlen(ds) ermittle

    Wie ermittelt strlen denn die Länge?

    Ich habe es jetzt anders gelöst. Ich füge einfach für die Länge des bereits enthaltenen Strings an jede Stelle ein '\0' ein

    Du kannst nicht wissen, wie "lang" der String ist, der in einem uninitialisierten Array steht. Aber ein einzelnes '\0' am Anfang reicht.

    (wahrscheinlich meinst du das mit hinten 😉

    😉



  • @ Chuqa: schau dir mal am besten in einem tutorial eine erklärung oder einen beitrag über string (char-arrays, nicht der datentyp string) und arrayhandling im allgemeinen an...



  • hmm naja gelesen hab ich das schon, wissen tu ich es auch, nur im eifer des gefechts nicht dran gedacht, im nachhinein ist es dann immer so *ditsch du depp ist doch logisch, weißt du doch (eigentlich) 😉

    mfg


Anmelden zum Antworten