以下代码:
#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 上仅尝试了此代码并复制了行为。