我有以下代码,我尝试将字符串03080000
转换为字节数组,其中第一个字节为 03,第二个为 08,第三个为 00,第四个为 00。
但是当我释放内存时它一直冻结。
我尝试使用调试器(visual studio)单步执行它,但是当我跨过 free() 函数时,调试器似乎停止了,它只是挂起。
bData
我写信的方式是否在破坏?或者有什么问题?
LPCWSTR lpValueData = L"03080000"
WCHAR HexChar[2] = {0};
UINT i;
UINT n = 0;
DWORD dwDataSize;
PBYTE bData;
dwDataSize = wcslen(lpValueData) / 2;
bData = (PBYTE) malloc(dwDataSize);
for (i = 0; i < dwDataSize * 2; i += 2)
{
HexChar[0] = lpValueData[i];
HexChar[1] = lpValueData[i + 1];
swscanf_s(HexChar, L"%X", &bData[n++]);
}
// I want bData to be {0x03, 0x08, 0x00, 0x00}
// Compare bData to another byte array here with memcmp
free(bData); // freezes here.