unsigned char: Länge der Zeichenkette (_mbslen)
-
Hi,
hab folgendes Programm geschrieben:
#include <stdio.h> #include <iostream.h> #include <windows.h> #include <mbstring.h> typedef unsigned char BYTE; int main() { int n = 8; BYTE * Obj; Obj = (BYTE*) malloc(sizeof(BYTE)*n); char entr[] = "no_entry"; for(int i=0;i<8;i++) { Obj[i] = entr[i]; } cout<<"\nOBJ: "<<*Obj<<endl; int length_uch=_mbslen(Obj); free(Obj); return 0; }
Warum ist length_uch (Länge von Obj) 12 und nicht 8??? Ich hab doch "no_entry" an Obj in der Schleife übergeben????
-
Du hast die Endemarkierung des Strings nicht mitkopiert. Davon abgesehen passt die Frage hier nicht ganz hin -- der Fehler könnte schließlich auch in einer fehlerhaften Benutzung vom _mbslen liegen, und die Funktion gibts im ANSI-Standard nicht.