006--C++动态内存(简介)
(1)使用new为一个数据对象获得并指定分配内存的通用格式:
typeName * pointer_name=new typeName;
(2)使用delete释放内存
delete pointer_name;
需要注意的是,delete释放的是pointer_name所直线的数据对象的内存。同时delete适用于释放用new申请的内存。
C++的标准指出,不要尝试释放已经释放的内存,同时也不能使用delete来释放声明变量所获得的内存。
int age=23;
int * page=&age;
delete page; //这是不合法的操作
注意:使用delete的关键在于,将它用于new分配的内存。这并不意味着要使用用于new的指针,而是用于new的地址。
int * ps=new int;
int * pq=ps;
delete pq;
一般来说,不要创建两个指向同一个内存块的指针,因为这将增加错误的删除同一内存块两次的可能性。