zuweisung eines wertes



  • also ich weiß echt nicht was daran falsch sein soll:

    char msgout[1024];
    msgout="blabla hier halt der text";
    

    bei der zuweisung an msgout (2. zeile) gibt er folgenden fehler aus:
    "L-Wert erwartet"

    was mach ich da falsch? erinner ich mich da falsch dass ich sowas nicht schon oft gemacht habe ??



  • strcpy verwenden



  • Oder halt so. Dann ist der aber const...
    const char* msgout = "blabla hier halt der text";



  • Ich denke, meine Antwort hilft ihm eher, da man den operator= bei nicht-arrays auch nciht nur einmal benutzen kann.



  • char msgout[1024];
    msgout="blabla hier halt der text";

    "..." ist ein Zeiger auf char. den versuchst du einem feld von chars zuzuweisen, was natürlich nicht erlaubt ist. Feld kann höchstens wie ein konstanter Zeiger verwendet werden, ist also auf jeden Fall ein R-Value und kein L-Value.

    1. Möglichkeit (wie dEUs sagte):
    strcpy(msgout, "blabla hier halt der text";

    2. Möglichkeit string statt char[]

    string msgout;
    msgout="blabla hier halt der text";

    Ich halte zweiteres für einfacher, ist aber in einigen Situationen nicht das, was man will.


Anmelden zum Antworten