黑马程序员技术交流社区
标题:
c语言的这个程序为什么会出现缓冲区溢出
[打印本页]
作者:
温暖的小白
时间:
2013-2-24 20:13
标题:
c语言的这个程序为什么会出现缓冲区溢出
#include "stdafx.h"
#include <stdio.h>
void main()
{
//FILE *f=fopen("out.txt","wb");
FILE *f=NULL;
if (f == NULL)
{
printf("%s\n","文件指针为空");
}
else
{
fprintf(f,"向文件中写入的内容");
}
fclose(f);
}
复制代码
用那条注释的语句,就不会溢出
作者:
李挺
时间:
2013-2-24 20:15
看到指针我就烦 唉 有心理阴影了
作者:
贾文泽
时间:
2013-2-24 21:19
本帖最后由 贾文泽 于 2013-2-24 21:20 编辑
来了个学C的美女哈{:soso_e113:}
#include "stdafx.h"
#include <stdio.h>
void main()
{
//FILE *f=fopen("out.txt","wb");
FILE *f=NULL; //你这f里面啥都没有,没打开文件,没有缓冲区
if (f == NULL)
{
printf("%s\n","文件指针为空");
}
else
{
fprintf(f,"向文件中写入的内容");
}
fclose(f); // fclose函数内部会调用fflush()函数对流所持有的缓冲区进行一次刷新操作,并释放文件指针和相关的流,而你的缓冲区根本就不存在,就返回0,报错了么</span>
}
复制代码
作者:
温暖的小白
时间:
2013-2-24 22:06
贾文泽 发表于 2013-2-24 21:19
来了个学C的美女哈
太好了,多谢楼上,嘿嘿:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2