考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:电脑故障 > 内 存 > 文章内容
  

常见的内存错误及其对策(1)

 [ 2016年1月9日 ] 【

  特点

  –编译器不能自动发现这类错误,通常是在程序运行时才能捕捉到

  –时隐时现,无明显症状

  分类

  –内存分配未成功,却使用了它

  –内存分配成功,但是尚未初始化就引用它

  –内存分配成功,并且已经初始化,但操作越过了内存的边界

  –忘记了释放内存,造成内存泄漏

  –释放了内存,却继续使用它

  常见错误1:

  –内存分配未成功,却使用了它

  起因

  –没有意识到内存分配会不成功

  –编程新手容易犯

  解决对策

  –在使用内存之前,检查指针是否为空指针(NULL)

  if (p == NULL)

  {

  printf("No enough memory!\n");

  exit(0);

  }

  常见错误2:

  –内存分配成功,但是尚未初始化就引用它

  n起因

  –没有初始化的观念

  –误以为内存的默认值全为0

  解决对策

  –即使是赋0值也不可省略,不要嫌麻烦

  常见错误3:

  –内存分配成功,并且已经初始化,但操作越过了内存的边界

  –例如:使用数组时经常发生下标“多1”或者“少1”的操作

  解决对策:

  –在for语句中,注意循环次数不要搞错

  常见错误4:

  –忘记释放内存,造成内存泄漏(Memory Leak)

  –“内存泄露”一词类似“原料泄露”

  –泄露出去的原料不能被利用,导致生产过程中原料不足

  –好比借东西不还

  –如果申请来的内存不用,别的程序也不能用,就好像这块内存泄露出去一样,造成浪费

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved