Итак, я запустил Analyze в VS 2017 с моим C ++ кодом. Это дает мне переполнение буфера со следующим:
TCHAR *sTemp = new TCHAR[5]();
if (sTemp)
StringCchCopy(sTemp, 5, L"0123456789");
Когда я шагаю по коду, sTemp равен «0123», а 4-я позиция равна \ 0.
Когда я запускаю Analyze для кода, я получаю ошибку C6386:
Warning C6386 Buffer overrun while writing to 'sTemp': the writable size is 'unsigned int' bytes, but '10' bytes might be written.
Почему? Я также попытался изменить массив на 10 и StringCchCopy на 5, но ошибка все та же.