这是我的代码:
std::vector<WCHAR> sString(6);
DWORD dwSize= sString.size(); // dwSize is 6
SIZE_T dwSizeof=sizeof(sString); // dwSizeof is 16
StringCchCopy(sString.data(), dwSize, L"asdfa"); // a, s, d, f, a, \0
SecureZeroMemory(sString, dwSize); // \0, \0, \0, f, a, \0
SecureZeroMemory(sString, dwSizeof); // \0, \0, \0, \0, \0, \0
我应该在 SecureZeroMemory 的 size 参数中输入哪个值?如果我输入 dwSize,只有前三个字符变为 '\0'。如果我把 dwSizeof 全部清空,但那看起来像缓冲区溢出?