Autor Thema: Kein Zugriff auf wchar_t-Array  (Gelesen 4464 mal)

bscreator

  • Gast
Gespeichert
« am: 02. December 2009, 09:05 »
Hallo,
ich hab ein Problem, ein char in ein wchar_t-Array zu schreiben:

wchar_t *msFile = L"Hallo Leute";
char Zeichen;
wchar_t ts;

Zeichen='C';   //char-Variable die C zuweisen
ts=Zeichen;    //wchar_t-Variable die C zuweisen
msFile[1]=ts;  //PROBLEMZEILE

Das witzige ist, dass ich einer wchar_t-Variablen problemlos ein char zuweisen kann.
Warum kann ich dann nicht an eine bestimmte Stelle eines wchar_t-Arrays ein wchar_t auch schreiben ?

Vielen Dank,
bsc

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 02. December 2009, 09:21 »
Du hast die Problembeschreibung vergessen.

Die Kristallkugel ist mal wieder verlegt, daher habe ich per manuellem Raten mal auf einen Compilerfehler getippt. Aber für mich kompiliert es anstandslos, insofern war das wohl nicht richtig geraten.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

RedEagle

  • Beiträge: 244
    • Profil anzeigen
    • RedEagle-OperatingSystem - Projekt
Gespeichert
« Antwort #2 am: 02. December 2009, 11:40 »
*msFile ist const
Du weist dem ding einen Konstanten String zu.


bscreator

  • Gast
Gespeichert
« Antwort #3 am: 02. December 2009, 12:45 »
Problembeschreibung : Ich möchte lediglich, um bei dem Code zu bleiben, an die zweite Speicherstelle des wchar_t-Arrays msFile ein C schreiben.

Zitat
*msFile ist const
Du weist dem ding einen Konstanten String zu.
Also soviel ich weiss, wird mit dieser Zeile wchar_t *msFile = L"Hallo Leute"; lediglich das Array initialisiert. Und unten mit msFile[1]=ts will ich an die 2. Stelle von msFile lediglich ein x-beliebiges, hier 'C', Zeichen schreiben, was NICHT GEHT

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 02. December 2009, 13:15 »
Hi,

msFile ist kein Array sondern ein Zeiger. msFile zeigt (wie RedEagle bereits gesagt hat) auf einen konstanten String. Du kannst nicht erwarten, einen konstanten String ändern zu können.

Problembeschreibung : Ich möchte lediglich, um bei dem Code zu bleiben, an die zweite Speicherstelle des wchar_t-Arrays msFile ein C schreiben.
Das ist keine Problembeschreibung.
Eine Problembeschreibung enthält so Sätze wie: "Das Programm stürzt ab". Oder auch "Der Compiler gibt folgende Fehlermeldung aus: ..."
Dieser Text wird unter jedem Beitrag angezeigt.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 02. December 2009, 14:54 »
Problembeschreibung : Ich möchte lediglich, um bei dem Code zu bleiben, an die zweite Speicherstelle des wchar_t-Arrays msFile ein C schreiben.
Wenn das Problem ist, dass du das möchtest, solltest du vielleicht überlegen, ob es nicht auch noch andere schöne Sachen auf dieser Welt gibt, um dich von diesem Wunsch abzulenken. Aber eigentlich glaube ich ja, dass der Wunsch nicht das Problem ist, sondern es irgendwo bei der Umsetzung hakt...
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bscreator

  • Gast
Gespeichert
« Antwort #6 am: 02. December 2009, 15:46 »
Da habt ihr Recht. Ich dachte, dass man so ein Array initialisiert. Hab ich wohl was verwechselt.
Vielen Dank für eure Hilfe

PS:
Zitat
solltest du vielleicht überlegen, ob es nicht auch noch andere schöne Sachen auf dieser Welt gibt, um dich von diesem Wunsch abzulenken.
Das hat mir am wenigsten geholfen.
« Letzte Änderung: 02. December 2009, 15:50 von bscreator »

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 02. December 2009, 15:53 »
Gut, mir war schon klar, dass deine Antwort nicht so wörtlich gemeint war, aber du hast gesagt, dass dein Ziel dein Problem ist. ;)

Ich wollte dir damit nur sagen, dass ich mit deiner Problembeschreibung nichts anfangen kann, weil sie eben nicht beschreibt, was das Problem ist. Wenn du Hilfe suchst, solltest du immer schauen, dass du genug Informationen gibst - im allgemeinen gehören dazu mindestens: Was beabsichtigst du zu tun? Wie versuchst du es zu tun und welches Ergebnis erwartest du? Was passiert wirklich? Die letzten beiden Punkte fehlen in diesem Thread komplett.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen