我正在尝试将一个数字传递给一个BYTES数组 - 但是将该数字视为一个字符数组。 这是我的代码:
for(int i=1;i<=totalFiles;i++)
{
BYTE* input = new BYTE[sizeof(DWORD) * sizeof(TCHAR)];
_stprintf_s((TCHAR*)input, sizeof(DWORD) * sizeof(TCHAR), _T("%d"), i);
QueueToThreadPool(input);
}
出于某种原因,当i = 10或i = 11(等等)时,输入仅获得值“1”而不是i的值。 那是为什么?
答案 0 :(得分:2)
我猜你的程序是作为UNICODE程序构建的,但无论使用什么字符串都将其视为纯ASCII字符串。因此,第一个UNICODE char的最重要字节(为零)被视为字符串的结尾。