メモリバッファを使用してファイルに書き込んでいます。各レコードをメモリバッファにコピーしてから、ディスクにフラッシュします。
コード:
char * OutBuffer;
char *pt;
OutBuffer = new char(BufferSize);
pt = OutBuffer;
for (int i=0; i<(FileSize / RECORD_SIZE); i++){
if (((i % recordsPerBlock)==0) && (i>0)){
FileSortHandle->write(OutBuffer, BufferSize);
pt = OutBuffer;
}
else{
memcpy(pt, minRecord, RECORD_SIZE);
pt = pt + RECORD_SIZE;
}
minRecord = nullptr;
}
「FileSortHandle->write(OutBuffer、BufferSize);」を呼び出すと VSは次のことを示しています。
「WindowsがSTL_Test2.exeでブレークポイントをトリガーしました。
これは、ヒープの破損が原因である可能性があります。これは、STL_Test2.exeまたはロードされたDLLのいずれかにバグがあることを示しています。
これは、STL_Test2.exeにフォーカスがあるときにユーザーがF12キーを押したことが原因である可能性もあります。
出力ウィンドウには、より多くの診断情報が表示される場合があります。」
誰かが私を助けることができますか?