美文网首页
BOOLAN C++下2

BOOLAN C++下2

作者: 长江小杨 | 来源:发表于2017-08-17 22:02 被阅读0次

    1.Complex c1(1,2);//这表示c1占用的空间来自stack。这个stack是作用域内的空间。例如函数调用时会创建一个stack,用来存放接收的参数和返回地址。调用结束自己释放。

    2.Complex* p=new Complex(3);//p指向的内容存放在heap(或者称system

    heap)里,使用结束要手动释放。否则会造成内存泄漏(memory leak)。因为指针p会被清理,但它指向的内容不会被清理。

    3.1中的c1又称auto object,auto表示会被自动清理

    4.Static对象的生命在作用域(scope)之后仍然存在,直至整个程序结束。

    5.Cpp的new时先分配memory再调用构造函数。如:complex *pc = new complex(1,2);编译器把new转化为:void* mem = operator new(sizef(complex)); pc =

    static_cast(mem);//转型pc->complex::complex(1,2);new的内部调用的是malloc(n)

    6.delete编译器化为先调析构函数,再释放指针内存

    7.分配出的内存状态:头尾有cookies,4个字节,中间有系统给的32+4个字节的空间,如果是数组,还有4字节的空间储存数组元素个数。

    8.Array new要array delete。即delete后加[]

    相关文章

      网友评论

          本文标题:BOOLAN C++下2

          本文链接:https://www.haomeiwen.com/subject/qdznrxtx.html