[求助]关于内存映射的问题,读数据时在一个地方总是越界
如题所示,我用内存映射打开一个文件,想读里面的数据,但是总是在一个特定的地方越界,找不出原因,请大侠们帮忙看看,因为刚刚接触这个东西,很多地方没弄明白。部分代码如下:
HANDLE hFile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
///////////创建TForAllSubP文件的映射内核对象hTMap
HANDLE PT=CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL);
CloseHandle(hFile);
PAL,PYorN都如上。
int *PT=(int*)(PTFile);
double *PAlp=(double *)(PAlpFile);
int *PYorN=(int*)(PYorNFile);
for(int index_i=0;index_i<numx;index_i++)//numx就是个数,200
for(int index_j=0;index_j<numy;index_j++)//numy 200
{
for(int index_P=0;index_P<numP;index_P++)
{
TCompare[index_P]=PT[(index_i*numy+index_j)*numP+index_P];
YorNCompare[index_P]=PYorN[(index_i*numy+index_j)*numP+index_P];
AlpCompare[index_P]=PAlp[(index_i*numy+index_j)*numP+index_P];
}
....
.....
}
....释放各种句柄。
就看不出有什么问题啊