8.4 新建和删除指针

Posted: March 26, 2011 in C++

/*
指针最常被用于:
1.管理自由区储存区中的数据;
2.访问类的成员数据和函数;
3.按引用传递参数

一个程序如果指针被分配了一个新的内存区域,使用完后必须删除将其释放.
反之,如果忘记释放,被占据而没有使用的内存将随着时间的推移越来越多,可能会导致系统崩溃.

使用关键字new来分配内存区域中的内存,后面加要分配内存的对象的类型;
使用关键字delete来归还内存给自由储存区.

如果离开指针的作用域时,没有归还内存,其会被视为已分配出去,同时因为指针不再可用.
所以将无法访问该内存区域.这样new分配的内存将不会被释放,且不能被使用.
就会造成内存泄漏.因为在程序结束之前,该内存再也无法使用,就像从计算机中泄露掉了一样.
为防止出现 内存泄漏 ,应该及时归还内存.
*/

#include <iostream>

using namespace std;

void main()
{
           int number=5;
           int *p1=&number;//分配指针p1指向number

           cout<<*p1<<endl;

           int *p2=new int;//分配新内存
           *p2=7;//赋值
           cout<<*p2<<endl;
           delete p2;//删除内存,如果不删除,创建越多p2,内存消耗愈大,最终可能会导致系统崩溃,所以使用完要记得删

           p2=new int;//分配新内存给p2
           *p2=9;//赋值
           cout<<*p2<<endl;
           delete p2;//删除p2内存区域

}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s