7_14:自动变量潜在问题
2015-10-10 15:18
218 查看
一源代码:
#include <stdio.h>
FILE *
open_data(void)
{
FILE *fp;
char buf[BUFSIZE];
if( (fp = fopen("datafile","r")) == NULL )
return NULL;
if( setvbuf(fp,buf,_IOLBF, BUFZIE) != 0)
return NULL;
return fp;
}
潜在的问题:
当open_data函数返回时,其在stack上的位置,会被下一个调用的函数占用。 但是该流的缓冲区还是指向这里 会造成混乱。 应在全局的存储空间静态的(static 和extern)或者动态的alloc 为数组buf分配空间。
#include <stdio.h>
FILE *
open_data(void)
{
FILE *fp;
char buf[BUFSIZE];
if( (fp = fopen("datafile","r")) == NULL )
return NULL;
if( setvbuf(fp,buf,_IOLBF, BUFZIE) != 0)
return NULL;
return fp;
}
潜在的问题:
当open_data函数返回时,其在stack上的位置,会被下一个调用的函数占用。 但是该流的缓冲区还是指向这里 会造成混乱。 应在全局的存储空间静态的(static 和extern)或者动态的alloc 为数组buf分配空间。
相关文章推荐
- poj 1469 COURSES(简单)(二部图匹配 DFS)
- 让ubuntu 的命令提示符前不显示绝对路径
- 清除掉Provisioning Profile中的多余的证书
- 最全的CSS浏览器兼容问题
- IOS上传文件到JAVA服务器
- mysql按时间段查询
- [MySQL] - errno:150
- ListView实现分页加载(三)实现分页加载
- 【SSH】——梳理三大框架
- Android的MVP模式应用(Login)
- 用户空间与内核的接口
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
- UIView 的 属 性
- 傅里叶变换
- 漂亮的CSS3圆角按钮组合DEMO演示
- AspectJ切入点语法详解(最全,不需要看其他了)
- Android开发最佳实践
- 第三章 ANR
- cocos各平台横屏竖屏设置方式
- js获取高度