【发布时间】:2012-07-09 17:31:03
【问题描述】:
我正在使用内存缓冲区写入文件。我将每条记录复制到内存缓冲区,然后将其刷新到磁盘。
代码:
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。
输出窗口可能有更多的诊断信息。”
有人可以帮助我吗?
【问题讨论】: