我是一个迷失在C++和指针中的Java程序员:D
我有一个指向Bucket-Objects的指针数组
Bucket<E>* index = new Bucket<E>[2];
我像这样初始化它:
index[0] points to Bucket1
index[1] points to Bucket2
然后,我想将数组的大小加倍,并像这样链接其他条目:
index[0] points to Bucket1
index[1] points to Bucket2
index[2] points to Bucket1
index[3] points to Bucket2
到目前为止,我已经有了这段代码,该代码生成了Bucket-Objects的副本,我不希望这样!
for (size_t i = 0; i < newSize; ++i)
{
if (i < oldIndexSize)
newIndex[i] = index[i];
else
newIndex[i] = index[i - oldIndexSize];
}
最佳答案
不,您有一个指向Bucket对象数组的指针。指向Bucket对象的指针数组如下所示:
Bucket<E> * index[2];
将动态声明指向存储桶对象的指针数组,如下所示:
Bucket<E> ** index = new Bucket<E>*[N];
但是您可能应该使用的是指向存储桶对象的共享指针的 vector ,如下所示:
std::vector<std::shared_ptr<Bucket<E>>> index;
关于c++ - 在C++中扩展指针数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9980216/