这里关于指针和动态申请的内存空间总结如下:
1.指针消亡了,并不表示它指示的动态内存会自动释放;
2.动态内存释放掉了,如果这个内存是一个动态对象,则并不表示一定会调用这个对象的析构函数;
动态内存释放掉了,并且调用了析构函数,并不表示指针会消亡或者自动变成了NULL。
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。
1.指针消亡了,并不表示它指示的动态内存会自动释放;
2.动态内存释放掉了,如果这个内存是一个动态对象,则并不表示一定会调用这个对象的析构函数;
动态内存释放掉了,并且调用了析构函数,并不表示指针会消亡或者自动变成了NULL。
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。
关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。
转自 http://blog.csdn.net/shareus/article/details/50996145