读书人

小弟我在子函数中声明了一个指针并没

发布时间: 2012-02-15 12:09:44 作者: rapoo

我在子函数中声明了一个指针,并没有使用,子函数运行完后,指针所占的内存能否自动释放。
我在子函数中声明了一个指针,并没有使用,子函数运行完后,指针所占的内存能否自动释放。

[解决办法]
不能..
如果不用DELETE..
要到程序结束时,才释放..
[解决办法]
没有 new 没有malloc 就不用理会
[解决办法]
声明了一个指针,是否malloc了指针指向的内存?没有则没什么问题.
[解决办法]
要分清楚是指针变量自身占有的内存空间,
还是它所指向的内存空间(包括堆上, 栈上, 全局数据区,静态数据区)
如果仅仅是声明了一个指针变量 如 int *p
指针本身所占有的4字节空间会和一般局部变量一样释放, 只是说如果你使用它
在堆中分配了一段内存空间,如p = new int[20], 这这段指针指向的内存空间必须由
delete[] p来释放。。。
[解决办法]
new来的用delete放掉.
malloc来的用free放掉.

显式分配显式释放
[解决办法]
指针变量本身是在函数的栈空间里分配的,不需要释放
如果指针有malloc new,指针所指向的空间是堆内存的,要释放.

读书人网 >C语言

热点推荐