黑马程序员技术交流社区

标题: c语言的这个程序为什么会出现缓冲区溢出 [打印本页]

作者: 温暖的小白    时间: 2013-2-24 20:13
标题: c语言的这个程序为什么会出现缓冲区溢出
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. void main()
  4. {
  5.         //FILE *f=fopen("out.txt","wb");
  6.         FILE *f=NULL;
  7.         if (f == NULL)
  8.         {
  9.                 printf("%s\n","文件指针为空");
  10.         }
  11.         else
  12.         {
  13.                 fprintf(f,"向文件中写入的内容");
  14.         }
  15.         fclose(f);
  16. }
复制代码
用那条注释的语句,就不会溢出
作者: 李挺    时间: 2013-2-24 20:15
看到指针我就烦 唉 有心理阴影了
作者: 贾文泽    时间: 2013-2-24 21:19
本帖最后由 贾文泽 于 2013-2-24 21:20 编辑

来了个学C的美女哈{:soso_e113:}
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. void main()
  4. {
  5.         //FILE *f=fopen("out.txt","wb");
  6.         FILE *f=NULL;                      //你这f里面啥都没有,没打开文件,没有缓冲区
  7.         if (f == NULL)
  8.         {
  9.                 printf("%s\n","文件指针为空");
  10.         }
  11.         else
  12.         {
  13.                 fprintf(f,"向文件中写入的内容");
  14.         }
  15.         fclose(f);                            // fclose函数内部会调用fflush()函数对流所持有的缓冲区进行一次刷新操作,并释放文件指针和相关的流,而你的缓冲区根本就不存在,就返回0,报错了么</span>
  16. }
复制代码

作者: 温暖的小白    时间: 2013-2-24 22:06
贾文泽 发表于 2013-2-24 21:19
来了个学C的美女哈

太好了,多谢楼上,嘿嘿:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2