美文网首页
数据结构(C++)二维数组的动态创建

数据结构(C++)二维数组的动态创建

作者: Vsion8980 | 来源:发表于2019-03-16 12:40 被阅读0次

    一、动态存储空间的分配

    C++使用new操作符进行存储空间的动态分配,它的值是一个指针,值向所分配的空间。所以必须声明为该类型的指针类型,例如:
    int *x;
    当进行动态分配时:
    x=new int;
    操作符new分配了一块能够存储一个整数的空间,并将该空间的指针赋给x,x是对整数指针的引用。
    又可以简写为:
    int *x = new int;

    一维数组的动态创建

    int *x=new int[n];

    二维数组的动态创建

    如果二维数组中至少有一维是未知的,那么数组空间必须在运行时利用new来创建。
    例如:假定一个二维字符型数组,在编译时已知列数为5:

    char (*c)[5];
    try{c=new char [n][5];}
    catch(){};
    

    运行时,可以通过计算获取或输入获得。

    为一个二维数组分配存储空间

    template <class T>
    void make2dArray(T** &x,int numberOfRows,T* &rowSize){//a为二维数组,第三个形参为一维数组
        x= new T* [numberOfRows];
        for (int i=0;i<numberOfRows;i++){
            x[i] = new T [rowSize[i]];
        }
    }
    

    相关文章

      网友评论

          本文标题:数据结构(C++)二维数组的动态创建

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