如何在本地存储类声明中传递的二维数组

时间:2021-02-11 20:44:31

标签: c++

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

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];
}

我知道编译器不知道如何为字符串的大小分配内存,但我不完全确定如何解决这个问题,谢谢

1 个答案:

答案 0 :(得分:0)

一种方法是:

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;
};
相关问题