我有一个方法将参数作为输入CString inputString
。
DWORD blockLength;
blockLength = inputString.GetLength();
PBYTE defaultBuffer = NULL;
defaultBuffer = new unsigned char[blockLength + 1];
sprintf_s(reinterpret_cast<char*>(defaultBuffer), (blockLength + 1), "%s", (LPCSTR)inputString);
我得到错误,该函数可能能够在分配的内存(sprintf_s
行)的边界外写入,这可能会破坏数据。