请无视抱歉[已关闭]

问题描述 投票:0回答:1

请无视,非常抱歉

c++ arrays dynamic
1个回答
2
投票

声明

int* newArr = new int[vectSize];
// ...
intPtr = newArr;
delete[] newArr;

错了。

通过赋值

intPtr = newArr
,您仅复制 指针,而不是它指向的内存。因此,在赋值之后,您将有两个指针变量,指向相同的内存。

当您

delete[] newArr
时,您使两个指针都无效。

解决方案:不要删除新数组。


另一方面,你真的需要了解三和五的规则。如果不遵循它们,

IntVector
将无法复制对象(即您无法按值传递或返回此类对象)。

© www.soinside.com 2019 - 2024. All rights reserved.