标签:
what:什么是动态内存?
c++中,普通变量(非static对象)存储在栈内存中,静态变量(局部static、类static)存储在静态内存中,在系统中还存在另外一种内存池,这部分内存供程序来分配,一般称作“自由空间“(free store)或”堆“(heap)。
where & When:在哪里何时使用动态内存?
以往学的变量中,全局对象在程序启动时创建,程序结束时销毁;局部对象在进入程序块时被创建,在离开块时被销毁;局部static对象在第一次使用时被创建,在程序结束时被销毁。可是有时候我们需要另外一种对象,其生存期与它们在哪里创建是无关的,只有当显式被释放时,这些对象才被销毁,这就是动态对象。动态对象调用动态内存。
how:怎样开始使用动态内存?
//第一种初始化方式:默认初始化: string *ps = new string ; // 初始化为空的string int *ps = new int ; //并未对ps所指向的内存进行初始化
//第二种初始化方式:值初始化: string *ps = new string ; // 初始化为空的string int *ps = new int ; // 初始化0
why:为什么使用动态内存?
为了降低c++直接管理内存的难度,C++11推出了智能指针特性优化了这种内存管理。明天继续~晚安~
标签:
原文地址:http://www.cnblogs.com/minemine/p/4426168.html