首页 > 解决方案 > 如何在本地存储类声明中传递的二维数组

问题描述

我正在尝试将二维数组本地存储在私有成员变量中,但我不确定如何分配内存。

class Class1{
   public:
      Class1(string strings[][2], int size){
          for(int i = 0; i < size; i++){
              this->strings[i][0] = strings[i][0];
              this->strings[i][1] = strings[i][1];
          }
      }
   private:
      string strings[][2];
}

我知道编译器不知道如何为字符串的大小分配内存,但我不完全确定该怎么做,谢谢

标签: c++

解决方案


一种方法是:

class Class1 {
public:
    Class1(string strings[][2], int size) {
        this->strings = new string*[size];
        for (int i = 0; i < size; i++) {
            this->strings[i] = new string[2];
            this->strings[i][0] = strings[i][0];
            this->strings[i][1] = strings[i][1];
        }
    }
private:
    string** strings;
};

推荐阅读