C++ new 和 delete 的那些事

来源:互联网 发布:淘宝老七配件可信吗 编辑:程序博客网 时间:2024/05/14 09:02

C++ new 和 delete 的那些事

一个变量

int *p = new int;delete p;p = NULL;

一个变量的new与delete很好理解,在此不赘述。

一维数组

int *p = new int[];delete []p;p = NULL;

二维数组

int main(){       int **p = new int*[10];  //new 出一个指针数组p,有十个指针元素    int i = 0;    int j = 0;    for (i = 0; i < 10; i++)    {        p[i] = new int[2];  //每个指针元素指向一个数组,数组带2个int元素    }    //赋值    int value = 0;    for (i = 0; i < 10; i++)    {        for (j = 0; j < 2; j++)        {            p[i][j] = value++;        }    }    //输出    for (i = 0; i < 10; i++)    {        for (j = 0; j < 2; j++)        {            cout << p[i][j] << " ";        }        cout << endl;    }    //释放内存    for (i = 0; i < 10; i++)    {        delete[] p[i];        p[i] = NULL;    }    delete[] p;    p = NULL;    getchar();    return 0;}

简而言之,就是new出一个二维指针,包含N个一维指针,再new N遍,为这些一维指针分配空间,并赋值,delete的时候就是deltet N遍。释放掉空间并指针归NULL(记得释放二维指针)。

原创粉丝点击