new和delete

内置类型产生的临时量都是常量,不可更改。在寄存器里

自定义类型产生的都是变量,可以修改,在内存上

const  &  可以引用一个不可寻址的常量,因为会产生临时量,寄存器里的值不可寻址

函数返回值:

<=4  eax

>=4   <=8  eax  edx

>8 产生临时量

产生临时量的三个时机:

1. 函数调用之前

2. 函数return语句处

3. 函数调用之后

动态内存的开辟

1. mallocfree

 Int *p=(int *)malloc(sizeof(int));

free(p);

 Int *p=(int *)malloc(sizeof(int)*100);

free(p);

2. new  malloc 和 初始化(内置类型,自定义类型调用构造函数)

delete :先析构,后free

   Int *p=new int(10);

    delete p;

    Int *p=new int [100];

    delete  []p;

如何正确申请一个三行四列的二维数组?

new和delete
new和delete
判断开辟内存是否失败:

new和delete

new和delete
在堆上开辟内存

new和delete
定位new :不会真的开辟内存,可实现内存池

malloc的实现调用系统API  brk(小内存)和mmap(大内存)。根据申请内存大小来决定调用这两个哪个函数。