黑马程序员技术交流社区

标题: 关于野指针和内存泄漏的几个问题? [打印本页]

作者: ldk1991125    时间: 2016-6-26 23:23
标题: 关于野指针和内存泄漏的几个问题?
在程序执行时,我们临时定义的局部变量在栈上生成的内存会随着程序的结束释放,但是程序中使用calloc或new等创建在堆上的内存需要手动释放,否则会造成内存泄漏。但是指向堆上内存的指针手动释放之后,会随之变成野指针,需要定义到NULL上使指针不能被访问。
在此过程,有些疑问想不明白。
第一:如果不对堆上的数据进行手动释放,退出程序以后,这些数据会不会自动释放?如果不释放,下次运行函数时,指针会指向这些地址么?还是指针会重新创建新的地址?
第二:当指针所在函数结束之后,指针还会再存在么?如果不存在,所指向的堆上的数据会因此释放么?
第三:指针是一个变量,里面存放的是一个地址。如果通过malloc定义了一个数组后,再为同一个指针定义新的数组,他的地址会因此改变么,还是说只是将地址中的数据改变了?如果地址会因此改变,原来的地址数据会释放么?如果原来数据没有释放,是要在定义新地址之前手动释放么?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2