标签:成功 sed 程序 include div 用户 img 变量 ext
Why?
可以保证程序在运行过程中按照实际需要申请适量的内存,使用结束后还可以释放,这种在程序运行过程中申请和释放的存储单元也称为堆对象,申请和释放的过程一般称为建立和删除。
new的功能:动态分配内存,或称为动态创建堆对象
new 数据类型(初始化参数列表)
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int *p1 = new int; //分配内存后不设定初值 6 int *p2 = new int();//表示用0对该对象初始化 7 8 //动态分配用于存放int类型数据的内存空间,并将初值2存入内存空间,然后将首地址赋给指针p3 9 int *p3 = new int(4); 10 11 cout << *p1 << endl; 12 cout << *p2 << endl; 13 cout << *p3 << endl; 14 return 0; 15 }
如果用户定义了默认构造函数:new T和new T( )效果相同
如果没有:new T会调用系统生成的隐含的默认构造函数;New T( )除了执行默认构造函数会执行的操作之外,还会为基本数据类型和指针类型的成员用0赋值,而且这一过程是递归的。
delete:删除由new建立的对象,释放指针所指向的内存空间
detele 指针名;
如果同一内存空间多次使用delete进行删除,会导致运行错误。
使用new分配的内存,必须用delete释放,否则会导致动态分配的内存单元无法回收,使得程序占据的内存越来越大,这叫做内存泄漏。
标签:成功 sed 程序 include div 用户 img 变量 ext
原文地址:http://www.cnblogs.com/meganhyy/p/8016365.html