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];
}
我知道编译器不知道如何为字符串的大小分配内存,但我不完全确定该怎么做,谢谢
解决方案
一种方法是:
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;
};
推荐阅读
- python - 熊猫在时间序列中丢弃少于 x 观察的行
- python - 如何在 tkinter 画布中为闭合的折线着色?
- angular - Angular8 - 在产品中的两个模块之间切换
- python - 无法找到并回答的python语法错误
- html - Django 从地址栏获取 URL
- c# - C# - ODBC 连接失败
- c++ - C/C++ 中的全局调用栈基础
- windows-10 - 如何通过 USB 将自定义按钮板连接到 PC?
- django-rest-framework - Django rest_framework 没有序列化关系
- r - 如何在嵌套数据框中执行pairwise.t.test