初心者質問スマタ
WindowsXP
C言語
BCC+BCCDeveloperでやっております。

char DataA[50];
char *DataB=(char *)malloc(50);

という二つのバッファを用意して

ReadFile()の第二引数に指定すると、DataBでは上手くファイルの内容を格納できるのですが
DataAではReadFile();関数は失敗し、GerLastError()でのエラーメッセージは
「メモリロケーションへのアクセスが無効です」となります。

この違いはなんなのでしょうか。よろしくお願いします