关于使用C/C++在堆上开辟数组(一维数组和二维数组)

自己前两天面试的时候被面试官要求手写在堆上开辟二维数组并释放,自己之前一直用C++stl的库,很久不写了,居然没有写出来,大写的尴尬。今天特意总结一下

#include
#include
#include
using namespace std;

void dynamic1D_malloc();
void dynamic1D_new();
void dynamic2D_malloc();
void dynamic2D_new();

int main(){

    dynamic1D_malloc();

    dynamic1D_new();

    dynamic2D_malloc();

    dynamic2D_new();
    


    while(1);
    return 0;

}

void dynamic1D_malloc(){
    int m;
    int *p;
    cout << "Input array length : " << endl;
    cin >> m;
    p = (int*) malloc(sizeof(int)*m);
    for(int i=0;i> *(p+i);
    }

    for(int i=0;i> m;
    int *p = new int [m];
    for(int i=0;i> *(p+i);
    }
    
    for(int i=0;i> m >> n;
    p = (int**) malloc(sizeof(int*)*m);
    for(int i=0;i> m >> n;
    int **p = nullptr;
    p = new int* [m];
    for(int i=0;i

代码中详细列出来了释放和开辟的过程,其中三位或者更高为维度的数组,可以参考二维数组的实现。

你可能感兴趣的:(C++,c++,开发语言)