Ошибка чтения Dr Memory в унифицированном виде не согласуется с разборкой

У меня есть простой цикл, целью которого является разбиение строки (очень простой) CSV на столбцы. Соответствующий раздел цикла foor выглядит следующим образом:

for (size_t i = 0; i< csvRowReader->_currentRowTextLength; i++)
{
    char character = csvRowReader->_currentRowText[i];

    if (character == ',') { ... }
    ...
}

Доктор Память сообщает следующее неинициализированное чтение:

Error #1: UNINITIALIZED READ: reading register eax
         CsvRowReader_MoveNext
             c:\users\holli\projects\transporter\source\csv\csvrowreader.c(116):
         ...

Теперь, пытаясь диагностировать происходящее, просматривал разборку для этой строки кода:

   116:         if (character == ',')
00D4A40F  movsx       eax,byte ptr [ebp-35h]  
00D4A413  cmp         eax,2Ch  
00D4A416  jne         CsvRowReader_MoveNext+1F5h (0D4A545h) 

В 00D4A413 регистр EAX имеет значение EAX = 0000006E, Который 'n':

(char)(0x0000006E)
110 'n'

Так что, насколько я могу судить eax инициализируется со значением в этом случае 'n', Я в конце концов пытаюсь выяснить, что является причиной этой ошибки, любая помощь будет принята с благодарностью!

0 ответов

Другие вопросы по тегам