new delete

为君一笑 提交于 2020-04-07 11:30:36

动态分配内存,类似于malloc/free

 

看一下如何使用

整形

    int *p = new int;
    *p = 5;

或者在new的同时直接初始化

    int *p = new int(5);
delete p;

 

字符

    char *p = new char('a');
    delete p;

 

数组

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

 

二维数组:

网上有资料这样new二维数组: int **p = new int[4][5]; 这个方法是错误的 int[4][5]这个数据类型和 **p并不匹配

我们可以这样做

    int **p = new int*[4];
    for (auto i = 0; i < 4; i++)
    {
        p[i] = new int[5];
    }

或者直接用向量

    vector<vector<int>> p(4);
    p[1].push_back(4);
    p[1].push_back(6);
    p[2].push_back(1);
    cout<<p[1][1]<<endl;

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!