美文网首页
C++动态数组

C++动态数组

作者: 肉肉肉肉_包 | 来源:发表于2018-09-18 19: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;
    

    相关文章

      网友评论

          本文标题:C++动态数组

          本文链接:https://www.haomeiwen.com/subject/bppmnftx.html