Char-Array Werte zuweisen?



  • Hallo,

    ich habe eine Klasse, die unter anderem ein Char-Array als Attribut hat.

    Jetzt will ich den Konstruktor implementieren und diesem Char-Array Werte zuweisen um genau zu sein lauter "0".

    Ich habe es jetzt auf folgende Arten versucht, aber immer eine Fehlermeldung erhalten:

    binaerWert[8] = "00000000";

    oder

    binaerWert [8] = {"0", "0", "0", "0", "0", "0", "0", "0"};

    usw.

    Kann mir bitte jemand sagen wie es richtig wäre?
    In den Konsolen-Anwendungen habe ich es immer auf diese Weise gemacht. Jetzt da ich eine Win-Application programmieren will geht es nicht mehr. Weshalb?



  • Was kommt denn für eine Fehlermeldung?

    Zur Not probier doch mal:

    for(int i = 0; i<8; ++i)
    {
        binaerWert[i] = '0';
    }
    

    oder:

    binaerWert = { '0', '0', .. etc.) also mit einfachen Anführungszeichen.



  • "" => Zeichenkette ('\0' wird automatisch angefügt)
    '' => Einzelnes Zeichen

    Array [1] = 'x' Ein Zeichen eingefügt
    Array [1] = "x" Weist 2 Zeichen zu... (Also auch an die Stelle Array [2])

    Du überschreibst in beiden Initialisierungsvarianten den Speicher direkt hinter
    deinem Array (Array [8]).

    Böse...



  • Dieser Fehler kommt:

    [C++ Fehler] zahlenwandler.cpp(61): E2188 Ausdruckssyntax

    Ok, diese Variante funktioniert:

    for(int i = 0; i<8; ++i)
    {
        binaerWert[i] = '0';
    }
    

    @Mathias:

    Aber diese Variante sollte dann doch Funktionieren:

    binaerWert = {'0', '0', '0', '0', '0', '0', '0', '0', };

    Tut sie jedoch nicht 😕



  • Diese Initialisierungslisten stammen noch aus C-Zeiten und können nicht mit Konstruktoren angewendet werden. (btw, ist "binärWert" das Objekt von deiner Klasse oder nur ein Hilfskonstrukt?)



  • CS schrieb:

    Diese Initialisierungslisten stammen noch aus C-Zeiten und können nicht mit Konstruktoren angewendet werden.

    Ok...

    binaerWert ist ein Attribut meiner Klasse 🙂


Anmelden zum Antworten