您的位置:首页 > 其它

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分配空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: