首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

ReadFile有关问题,求解

2013-08-01 
ReadFile问题,求解?本帖最后由 guangguang465355249 于 2013-07-14 12:59:37 编辑char res[BUFSIZ]{0}wh

ReadFile问题,求解?
本帖最后由 guangguang465355249 于 2013-07-14 12:59:37 编辑 char res[BUFSIZ]={0};
while(ReadFile(hRead,res,BUFSIZ-1,&bytesRead,NULL)&&bytesRead!=0)
{
        std::cout<<res;
        memset(res,0,BUFSIZ);
}
这样就可以
char res[300]={0};
while(ReadFile(hRead,res,299,&bytesRead,NULL)&&bytesRead!=0)
{
        std::cout<<res;
        memset(res,0,BUFSIZ);
}
这样就不行了
求解?
[解决办法]
确定BUFSIZ 小于 300?
否则这个memset(res,0,BUFSIZ);越界了
[解决办法]
char res[300]={0};
while(ReadFile(hRead,res,299,&bytesRead,NULL)&&bytesRead!=0)
{
        std::cout<<res;
        memset(res,0,300);
}
[解决办法]
定义了大小为300的数组,却用BUFSIZ的大小进行memset
[解决办法]

引用
这样就可以
char res[300]={0};
while(ReadFile(hRead,res,299,&bytesRead,NULL)&&bytesRead!=0)
{
        std::cout<<res;
        memset(res,0,BUFSIZ);
}
这样就不行了


你仔细看看memset这段代码,如果允许运行,内存肯定出错.
编译的时候就应该报错吧.以前我好想遇到这样的问题.

热点排行