....
wstring wstrFirst;
INFO_t* pstInfo = NULL;
INFO_MAP::const_iterator itrReqInfoEnd = RequestedInfoMap_i.end();
for(INFO_MAP::const_iterator itrReqInfo = RequestedInfoMap_i.begin();
itrReqInfo != itrReqInfoEnd;
++itrReqInfo)
{
wstrFirst = itrReqInfo->first;
pstInfo = itrReqInfo->second;
...
См. Выше фрагмент кода. Я запускаю CODESONAR (инструмент статического анализа). Моя проблема заключается в том, что в последней строке (pstInfo = itrReqInfo->second;
), CODESONAR показывает следующее сообщение об ошибке:Буфер превышения комментария от CODESONAR на stl :: map использование итератора
This code reads past the end of the buffer pointed to by itrReqInfo->.
. itrReqInfo-> evaluates to &wstrFirst._Bx.
. The first byte read is at offset 48 from the beginning of the buffer pointed to by itrReqInfo->, whose capacity is 48 bytes.
. The offset exceeds the capacity.
. The overrun occurs in stack memory. The issue can occur if the highlighted code executes.
(здесь выделен код означает pstInfo = itrReqInfo->second;
)
ли ложно-положительным? Если нет, как я могу это исправить?
Так что же происходит, когда вы выполняете выделенный код? Все нормально? Что Вальгринд говорит обо всем этом? – Kupto
Код работает нормально. – krishnakumartg