gpt4 book ai didi

c++ - 使用 ptr-to-ptr 数组?

转载 作者:行者123 更新时间:2023-11-30 01:42:47 30 4
gpt4 key购买 nike

这样的东西有什么用和解释?:

int capacity;
int** number;
this->number = new int*[this->capacity];

我正在为考试而学习,在测试考试中,他们提出了使用指针到指针对象并从中创建动态数组的要求。有两个类(class); 钱包 & WalletKeeper。在解决方案中,他们在 WalletKeeper 的头文件中这样做了:

private:
Wallet** wallets;
int capacity;
int size;
/*other stuff below this*/

在构造函数中:

WalletKeeper::WalletKeeper(int capacity)
{
this->capacity = capacity;
this->size = 0;
this->wallets = new Wallet*[this->capacity];
this->initiate();
}

我理解这样一个基本的动态数组:

Wallet * wallets = new Wallet[capacity];

这意味着您创建了一个指针,指向内存中创建钱包数组的位置,因此您可以更改这些内存槽的内容。但是为什么要创建一个指向指针数组的指针呢?有什么用?

Wallet 没有自己的数组,否则我会理解它,因为我读到了:The correct way to initialize a dynamic pointer to a multidimensional array?

教授们正在休假,再多说几句。

最佳答案

指针数组有很多用途。

  1. 重新排序。假设您要对数组中的对象重新排序。处理指针比移动整个对象要快得多。
  2. 动态分配。您可以单独删除或分配每个对象。
  3. 重新分配和性能。假设您想增加数组的大小。重新分配实际对象可能会导致不同类型的问题(无效)。然而,重新分配指针数组或多或少没有问题,而且速度也快得多。

关于c++ - 使用 ptr-to-ptr 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38978080/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com