次のコード:
#include<stdlib.h>
#include<stdio.h>
int main (void) {
FILE** f;
if ( (*f = (FILE *)malloc( sizeof(FILE *)) ) == NULL) {
printf("Out of RAM or some other disaster!\n");
return 1;
}
printf("OK!\n");
return 0;
}
Mac OS X 10.8 上で問題なくコンパイルおよび実行されます。ただし、Windows 7 (MinGW でコンパイル) では、malloc() でクラッシュします。なぜこれが起こるのでしょうか、またはそれを止めるためのアイデアはありますか?
ありがとう!
注: これは明らかに元はより大きなプログラムの一部でしたが、プログラム全体を上記のように縮小し、Mac と PC の両方でこのコードだけを試し、動作を再現しました。