关于利用fread重复读取一个文件的问题?

现在我又一个m x m的矩阵放在一个.dat文件中,我想的是将这个矩阵用fread读取十份就相当于吧数据复制了8份,代码如下:

int Num=8;
float2* Datain_100 = new float2[m*m*Num];
FILE *fpRead_100 = fopen("filename.dat","rb");
for(int i=0;i<Num;i++)
{
if(!fread(Datain_100+i*m*m,sizeof(float2),m*m,fpRead_100))
printf("read %d error1.\n",i);
}

但是结果报错为read3 4 5 6 7都出错,如果不能这样连续读取放在不同的内存段,那为什么read0 1 2没有出错呢?求大神解答

http://blog.csdn.net/bujuan827/article/details/53872498