ビットマップ画像処理プログラムで、上下反転を行うと画像によってはエラーが出てしまいます。
どうやら画像サイズに関係しているみたいです。(1024*768 160*120ならOK,800*600 1024*819ならNG)
memcpyでエラーが発生してるってことはデバッガで確認しましたが、理由がわかりません。
あくまで推測ですが、ポインタが怪しいかと。

環境
OS Windows
VC.NET

ソース一部。
前略
typedef struct{
unsigned char b;
unsigned char g;
unsigned char r;
}pixel;
中略
void henkan_mirrou(BITMAPINFOHEADER *bminfo, pixel *img){
int x,y;
pixel cache;

for(x=0;x < bminfo->biWidth;x++){
for(y=0;y < (bminfo->biHeight/2);y++){
memcpy( &cache, (img + (y*bminfo->biWidth) +x) , sizeof(pixel) );//←←←エラー(?)
memcpy( (img + (y*bminfo->biWidth) +x) , (img + (bminfo->biHeight-y) * bminfo->biWidth +x) , sizeof(pixel) );
memcpy( (img + (bminfo->biHeight-y) * bminfo->biWidth +x) , &cache, sizeof(pixel) );
}
}
}

以上。
ご教授下さい。