我想知道是否有办法删除指针数组而不触及内存中的指向对象。删除指针数组而不删除内存中的指向对象?
我正在为几天前实现的HashSet
写一个约束例程,所以当哈希表已满时,它将被另一个双倍大小的表所取代。我使用指向一个对象的指针数组(User
)来表示哈希表,并且该数组本身在我的HashSet
类中动态声明,因此可以在使用哈希函数将其所有内容复制到新表后将其删除。
所以基本上我需要:
- 声明另一个表,其大小等于原始阵列大小的两倍。
- 将每个指向
User
对象的指针从我的原始数组复制到应用我的散列函数的新对象(它从内存中获取User
对象,并使用表示用户名的字符串计算索引)。 - 将原始数组中的所有指针插入新数组后,我必须释放原始数组的分配内存,并将我的HashSet类(成员专用
userContainer
)中的指针替换为新数组的指针(数组)。
问题是,如果我使用delete[] userContainer
为它释放分配的内存,它也将删除内存中的每个对象,以便新创建的替换数组将指向内存中释放的位置!
对不起没有提及的编程语言。这是C++ –