modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
阅读:2021回复:5

fopen引起内存溢出!急!急!急!

楼主#
更多 发布于:2007-03-02 20:52
  在MFC程序中打开一个文件:
FILE* fp=fopen("1.dat","r");  //1.dat是个比较大的文件大概50K
if(fp!=NULL)
{
    read_and_operarte(fp);       ***********(1)
}

当调试程序,执行到(1)处的时候就会出现:0xC0000005的错误。

由于1.dat是个比较大的文件,因此我将1.dat改的比较小,于是程序正确运行,没有错误。但是如果1.dat比较大的时候就会出现上述的错误,请问大家知道这是什么原因造成的吗?应该怎么改呢?

很急啊,哪位兄弟帮个忙吧。。。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2007-03-02 21:40
read_and_operarte这里面作了啥操作?
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
modernhill
驱动小牛
驱动小牛
  • 注册日期2004-05-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望278点
  • 贡献值0点
  • 好评度172点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-02 21:45
就是那文件的内容读出来,然后送到端口,由于是个API,具体不太清楚。。。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2007-03-02 22:22
看你的代码,应该是这个函数中的问题
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
ytwei
驱动小牛
驱动小牛
  • 注册日期2005-04-01
  • 最后登录2010-07-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望102点
  • 贡献值0点
  • 好评度85点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-05 13:17
是read_and_operarte内部设置的读缓冲区太小,而API内部又想读出整个文件数据后再处理,就很容易造成内存越界。
cheme
驱动牛犊
驱动牛犊
  • 注册日期2006-07-19
  • 最后登录2014-09-13
  • 粉丝0
  • 关注0
  • 积分192分
  • 威望40点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-26 16:46
50不大吧
游客

返回顶部