我定义了一个变量
wchar_t path[256];
然后我尝试获取此变量的strlen()
strlen(path);
错误是strlen()
太多参数?
我不明白,我只向strlen()
传递一个参数,路径很简单,大小为WORD
的字符最多可以包含256个字符?
这是什么问题?我怎么能绕过它?
解决!
为了解决这个问题,我只需输入sPath wchar_t作为(const BYTE *)
,因此它允许我读取ASCII,它告诉strlen()函数在达到零时停止计数。现在工作。
答案 0 :(得分:3)
答案 1 :(得分:0)
strlen()在提供的字符串中查找“\ 0”。这是一个空终止字符串。如果你传递一个未初始化的字符串,它可能看起来永远,因为谁知道你在那里放东西之前记忆中的什么。哪个继续意味着strlen()看起来直到它找到'\ 0',如果没有'\ 0'它将不会停止它将读取它可以的所有内存,应该产生无限循环。
尝试推杆:
char path[256] = {"test"};
传递,在这种情况下,auto auto null终止。