凌阳教育专注嵌入式教育14年,良心教育,有担当,有诚信,值得信赖的教育品牌,欢迎访问官网http://www.sunplusedu.com

凌阳教育分享:内存泄露

上一篇 / 下一篇  2016-08-25 16:56:37

  概念:申请的内存,首地址丢了,找不了,再也没法使用了,

  也没法释放了,这块内存就被泄露。

  例1

  int main()

  {

  char *p;

  p=(char *)malloc(100);

  //接下来,可以用p指向的内存了

  p="hello world";//p指向别的地方了

  //从此以后,再也找不到你申请的100个字节了。

  }

  例2

  void fun()

  {

  char *p;

  p=(char *)malloc(100);

  //接下来,可以用p指向的内存了

  ;

  ;

  }

  int main()

  {

  fun();

  fun();

  return 0;

  }

  例2解决方案1

  void fun()

  {

  char *p;

  p=(char *)malloc(100);

  //接下来,可以用p指向的内存了

  ;

  ;

  free(p);

  }

  int main()

  {

  fun();

  fun();

  return 0;

  }

  例2解决方案2

  char * fun()

  {

  char *p;

  p=(char *)malloc(100);

  //接下来,可以用p指向的内存了

  ;

  ;

  return p;

  }

  int main()

  {

  char *q;

  q=fun();

  //可以通过q使用 ,动态申请的100个字节的内存了

  //记得释放

  free(q);

  return 0;

  }

  总结:申请的内存,一定不要把首地址给丢了,在不用的时候

  要释放内存。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar