【发布时间】:2017-11-01 07:39:31
【问题描述】:
我想执行 char** 的深层复制,但我不知道如何分配内存/复制此数据类型。这适用于包含 char** 的类中的复制构造函数。例如,假设我有这个代码:
char ** arr1 = new char*[20];
arr1[0] = (char*)"This is index 1";
arr1[1] = (char*)"This is index 2";
char ** arr2;
如何将 arr1 的内容深度复制到 arr2 中?任何帮助表示赞赏!
【问题讨论】:
-
你拼错了
std::vector<std::string> -
@StoryTeller 哈哈,我希望。这是一个编程作业,老师希望所有字符串都存储为 char*,因此必须将字符串数组存储为 char* 数组。我认为不必要的复杂化,而不是我为自己做的方式,但我必须学习如何为这项任务做这件事。
-
这是C课程吗?鉴于您的示例,无法判断
arr1中有多少个字符串(除非它存储在某处的条目数) -
@AdrianBernat:为了更明确一点,我们认为这是一个非常糟糕的编程任务。以这种方式教授 C++ 在 20 世纪可能是可以接受的,但在这个时代已经没有立足之地。即使您确实想教授底层操作,您也必须在 教授 C++ 基础知识之后这样做,而且这样做是正确的。您将
char[]包装在您自己的String类中,然后构建自定义Vector<String>。 -
找一个更好的老师。