我正在使用内存缓冲区写入文件。我将每条记录复制到内存缓冲区,然后将其刷新到磁盘。
代码:
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。
输出窗口可能有更多诊断信息。”
有人可以帮助我吗?