Bitweise oder bei einem char*



  • Hallo

    Ich habe einen Pointer auf einen String und möchte nun bits selber setzen und ändern in dem String
    Habe aber das Problem das das Programm immer abstürzt wenn ich den geänderten String wieder zurückschreiben will

    char *a = "0000";
    a[0] = ( a[0] | 0x08 );
    

    kann mir einer sagen was ich falsche mache bzw wie ich es richtig machen könnte?

    Danke



  • Auch wenn C++ es erlaubt, ist das String-Literal eigentlich ein 'const char*' - da darste du nicht drin herumschreiben. Verwende doch ein char-Array oder (noch besser) einen std::string.



  • wenns am const char liegen sollte dann mache es doch einfach so

    char *a;

    a = new char[4] o. wie groß auch immer

    somit reserviert nicht der compiler den speicher direkt im prog, was ich denke das const hervor ruft, sondern du reservierst wärend der laufzeit und somit nicht const.

    MfG Oelsni

    Nur die guten kommen in den Himmel, bloß was soll ich da^^?



  • Danke für die schnellen Antworten.
    werde mal mein Glück versuchen und schauen was sich bei mir eher anbietet.
    beim Testen gingen erstmal beide Wege.

    cu



  • oelsni schrieb:

    wenns am const char liegen sollte dann mache es doch einfach so

    char *a;

    a = new char[4] o. wie groß auch immer

    Ja, das ginge auch noch, ist nur etwas aufwendiger zu behandeln (du mußt den Speicher von Hand befüllen, Platz für den Null-Terminator lassen, Speicher wieder freigeben etc)


Anmelden zum Antworten