不知道这是什么原因?
TCHAR tString[1];
int m = lstrlen(tString);
int n = wcslen(tString);
编译得到m = 33;// 有时是23
n = 21。// 有时是11
TCHAR tString[2];
int m = lstrlen(tString);
int n = wcslen(tString);
编译得到m = 27;结果也不确定
n = 15。结果也不确定
反正每次改变tString的字符串长度,每次得到的m和n值都不一样。
这是什么意思? 什么原因?
我的系统是win 7 64位专业版
[解决办法]
字符串初始化一下
[解决办法]
没有初始化就计算长度?
[解决办法]
倒,你的tString根本就没有初始化,这时tString是个野指针,而strlen一类的字符串函数是读到NULL字符返回长度的,你这样取长度没有意义,如果非要这时使用字符串函数的话,先清空内存,ZeroMemory(tString, 长度);,或者当长度是1时tString[0] = NULL;,长度是1也没必要用数组,就是单个字符