"."や"->"はものすごく優先度が高い演算子で、ほとんど「名前の一部」とみなしていいほど。
・・・と、最初は思ってればいいよん。
bMfh.bfType[0] = 'B';
strncpy(bMfh.bfType, "BM", 2);

>bfTypeがchar[2]か[3]かわかんないので、
これは問題あると思うが。