在多位元組程式中,memset及zeromemory的使用很清楚,如:
char str[10];
memset(str,0,10)或memset(str,0,sizeof(str));
zeromemory(str,10)或zeromemory(str,sizeof(str))
其中:sizeof(str)==10;
在unicode下,應該這樣用:
tchar str[10];
memset(str,0,20)或memset(str,0,sizeof(str));
zeromemory(str,20)或zeromemory(str,sizeof(str))
memset(str,'\0',sizeof(str))或memset(str,'\0',20)
memset(str,text('\0'),10*sizeof(tchar));
其中:sizeof(str)==20,str字串分配的記憶體位元組數;若用 wcslen(str),應該是str字串的實際個數(有效字元個數);
在定義時也可以將記憶體清0,如:tchar str[10]=_t("");
tchar str[10]=_t("");
等同於tchar str[10];
memset(str,0,20);
linux下的memset函式
起因 希望對各種型別的陣列進行初始化,避免野值 memset函式將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ascii值,塊的大小由第三個引數指定,這個函式通常為新申請的記憶體做初始化工作,其返回值為指向s的指標。函式標頭檔案 include void memset void s...
Unicode下的CString與char 轉換
在vs2005及以上的環境中,所見工程的預設字符集形式是unicode,而vc6.0中,字符集形式為多位元組字符集 mbcs multi byte character set 這樣導致了許多字元轉換的方法在unicode的環境中不允許使用,強制型別轉換的結果也會變得非常奇怪。如lpctstr與cha...
unicode下資料之間的轉換
首先mfc下字串只有兩種資料 char 乙個位元組 和wchar t 兩個位元組 很多其他資料型別如tchar,wchar等都是這個兩個基本型別的巨集定義,byte是uchar 1 對話方塊列印char char info messageboxa this m hwnd,info,mb ok 2 c...