C++动态数组

2018-09-18  本文已影响0人  肉肉肉肉_包

在C++中有的时候定义一个数组的长度大小是由用户自己定义的,这个时候就需要声明动态数组。

声明一维动态数组:


int n ;

cin>>n;

int *a=new int[n];

声明二维动态数组:


int **a=new int*[m];    //分配一个指针数组,将其首地址保存在a中

    for(int i=0;i<m;i++)    //为指针数组的每一个元素分配一个数组

        a[i] = new int[n];    //相当于产生了一个二维数组a[m][n]

静态声明的数组可以有公式(假设也是m行n列)


        b[i][j] = b[i*n+j]

这是因为数组b是连续的一片内存,而动态内存声明的数组任意的a[k]都是一个int类型,即一个地址,所以只能a[i][j]或者a+i)+j)来访问数组的元素,而不能a[in+j]使用。


for(int i=0;i<m;++i)

    delete [] a[i];

delete []a;
上一篇下一篇

猜你喜欢

热点阅读