C++中的new和delete

来源:互联网 发布:数据安全工程师 编辑:程序博客网 时间:2024/06/06 12:57
new和delete
代码:
#include <iostream>using namespace std;void main(){    //基础数据类型分配内存    int *p = new int;    *p = 1;    cout<<"*p:" <<*p<<endl;    delete p;    //给一维数组分配内存    int *pb;    pb = new int[5];    for (int i=1 ; i<5 ; i++)    {        *(pb+i) = i;    }    cout<<"*(pb+2)="<<*(pb+2)<<endl;    //给二维数组分配内存    int (*pc)[3];    int j;    pc = new int[2][3];    for (int i=0;i<2;i++)    {        for (j=0 ; j<3 ; j++)        {            *(pc[i]+j) = 1;        }    }    cout<<"*(pc[1]+1)=" << *(pc[1]+1) <<endl;    system("pause");}
结果:


在类中的new和delete
代码:
#include <iostream>using namespace std;class Test{public:    Test(int _a)    {        a = _a;        cout<<"构造函数执行" <<endl;    }    ~Test()    {        cout<<"析构函数执行" <<endl;    }protected:private:    int a;};void main(){    Test *pT1 = (Test *)malloc(sizeof(Test));    delete pT1;    Test *pT2 = new Test(10);    free(pT2);    system("pause");}

结果:


注:C++代码中也可以用C语言的malloc和free,不同的是malloc和free不调用构造函数和析构函数,new和delete调用构造函数和析构函数。
如果new和malloc给基础数据类型分配内存,则可以混搭。
原创粉丝点击