正如标题所示,我想重新创建一个与原始大小不同的数组。使用Memcpy来扩大指针数组的大小
我的原始数组是在启动类时创建的,并且它在类的私有成员中。该数组被称为Node * arr [10]。它最初的大小设置为10,并且一旦应用程序需要更多空间来存储长度,我希望使用memcpy创建一个新数组,它将与原始arr相同,但唯一的区别是其最大大小。
下面是我提出的代码,但遇到一个错误。示
//Part Of Class
private:
Node* arr[10];
//Part Of Method
size_t newSize = size * 2;
Node** newArr = new Node*[newSize];
memcpy(newArr, arr, size * sizeof(Node*));
maxSize = newSize;
delete[] arr;
arr = newArr;
误差在最后一行,ARR = newArr,它指出它不能从节点**转换成节点* [10]。为什么是这样?是因为Arr是在班级第一次发起时启动的吗?
将鼠标悬停在newArr上显示Node **,同时悬停arr显示Node * Map :: arr [10]。有人可以解释我的选择,因为我想坚持阵列,我不想改变向量。我知道问题是他们没有被归类为相同的类型,但是如果我删除了newArr = new Node * ect行中的第二个星号,它说它不能转换。
感谢您抽出式阅读我的问题,我希望这个问题是正确的格式,视