1

(非常に単純な)csvの行を列に分割することを目的とする単純なループがあります。for ループの関連セクションは次のとおりです。

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

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

Dr Memory は、次の初期化されていない読み取りを報告します。

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'。私はこのエラーの原因を突き止めようとしていますが、どんな助けでも大歓迎です!

4

0 に答える 0