-2

我试图将一个数字传递给一个 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 的值。这是为什么?

4

1 回答 1

2

我猜您的程序是作为 UNICODE 程序构建的,但是无论使用该字符串,都将其视为纯 ASCII 字符串。因此,第一个 UNICODE 字符(为零)的最高有效字节被视为字符串的结尾。

于 2012-06-24T16:57:14.767 回答