我正在使用简单的fopen,fwrite,fflush,fclose代码体。但是,出于某种原因,每次我尝试创建一个FILE *
对象时,它都会崩溃。我的代码如下。
//fopen
FILE * f_data = fopen("out.txt", 'wb'); // BREAKS HERE
if (f_data == NULL) { printf("fopen failed!"); }
//fwrite
int fwritten = fwrite(data, 1, content_length, f_data);
if (fwritten == 0) { printf("fwrite failed!"); }
//fflush
int flush = fflush(f_data);
if (flush != 0) { printf("fflush failed!"); }
//fclose
int close = fclose(f_data);
if (close != 0) { printf("fclose failed!"); }
每当我运行此代码时,都会收到以下错误:
main.exe中0x5F52C795(ucrtbased.dll)的未处理异常:0xC0000005:访问冲突读取位置0x00007762。
我现在一直在研究这个问题大约一个小时,但没有用。我已经知道这是Windows告诉我我遇到了分段错误,可能是因为试图取消引用NULL
指针。
如果有人对我的文件*实例化工作原因有所了解,请分享!
编辑:我不确定它是否与此问题相关,但正在编写的data
缓冲区是一个简单的字符串:" Hello,world,以及所有居住者! "并且content_length
设置为sizeof(data)
。