Ich bin verwirrt
-
Hallo,
ich bin völlig verwirrt..
Folgender Code:
WCHAR cTest[2]; cTest[0] = cString[wcslen(cString) - 2]; cTest[1] = cString[wcslen(cString) - 1]; cTest[2] = L'\0';erzeugt beim Debuggen:
Run-Time Check Failure #2 - Stack around the variable 'cTest' was corrupted.Wenn ich jetzt einen Index mehr mache (also WCHAR cTest[3]; ) funktioniert alles ohne diesen Fehler..
Aber warum kommt der Fehler denn überhaupt????
@edit: Ich benutze MS VS 2005...
MfG,
Max
-
Weil du nur Speicher für 2 wchars allokierst. Der Index beginnt immer bei 0 also Array 0 und 1. Das hat schon alles seine Richtigekeit

schirrmie
-
Oh, verdammt...
ich dachte d.h. 0 bis 2, also 3..
Danke, gut das ichs jetzt weiss!!
-
ripmav
MitgliedBenutzerprofil
Anmeldungsdatum: 27.03.2007besser spät als nie

-
^^
int len = wcslen(cString); WCHAR cTest[3] = { cString[len - 2], cString[len - 1], 0 };