sprintf_s在C ++中抛出缓冲区溢出错误

时间:2017-06-14 18:28:55

标签: c++ memory memory-management printf

我有一个方法将参数作为输入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行)的边界外写入,这可能会破坏数据。

0 个答案:

没有答案