Länge von wchar_t???
-
Hallo Forum,
brauche eine kleine Erklärung von euch!Erst der Code:
// UNICODE Project! // Bei wchar_t: wchar_t acCount[10]; int ilen = wcslen(acCount); // ilen hat den Wert 35 bei der initialisierung, WARUM 35 und nicht 0, hab doch noch nichts gespeichert!!! ilen = sizeof(acCount); // ilen hat den Wert 20(hier kann ich nur raten warum 20 und nicht 10, vermutlich weil UNICODE Project, darum wird *sizeof(WCHAR) verwendet)!!! // darum die doppelte Größe???? // Bei char: char acCount[10]; int ilen = strlen(acCount); // ilen hat den Wert 20 bei der initialisierung, WARUM 20 und nicht 0, hab doch noch nichts gespeichert!!! ilen = sizeof(acCount); // ilen hat den Wert 10!!!Hat jemand dafür eine Erklärung...

Grüße
pixel
-
wchar_t ist 2 Byte lang. Somit hat ein Array von 10 wchar_t logischerweise 20 Bytes.
char is 1 Byte lang. Somit hat ein Array von 10 wchar_t logischerweise 10 Bytes.
PS: Deine strlen bzw. wcslen ist total sinnlos, da das Array nicht initialisiert ist und somit beliebige Werte zurückkommen können (und natürlich kann Dein Programm abstürzen).
-
Hallo Jochen,
PS: Deine strlen bzw. wcslen ist total sinnlos, da das Array nicht initialisiert ist und somit beliebige Werte zurückkommen können (und natürlich kann Dein Programm abstürzen).
das mit dem beliebigen wert hab ich nicht gewusst, danke!

grüsse
pixel