调用CreateFileMap和MapViewOfFile成功,映射到的数据却无意义
我有一个结构体A,它里面还内含一个结构体B。A中存放着一个B类型的数组。
现在,我先调用了CreateFileMap,传递的文件句柄参数是那个无效文件句柄INVALID_HANDLE_VALUE,调用这个函数返回的确实是一个有效的文件映射句柄。然后用MapViewOfFile,也成功了。
但是,我通过把MapViewOfFile返回的void*指针转换为A*,发现了一个问题。A对象中存放的B类型数组并不全部是有意义的,比如这个数组大小为17,但我发现数组下标从15开始就已经没有意义了。最奇怪的是,虽然下标从15开始出现问题,但在下标为15的这个地方取到的B类型对象中,还是有部分成员变量有意义。
A,B两个结构体都很大,我求过它们的sizeof,发现A的已经达到4K多byte了,B的大小为272字节。两个结构体都是由客户定义的,且已经做了对齐的考虑。
请问各位大侠,出现上述问题的原因是什么呢?该如何解决呢?