我正在尝试交换指针,但我得到的只是访问错误,有什么办法可以做到这一点吗?
void Swap(someObject *first, someObject *next)
{
delete first;
first = next;
// I'm guessing this delete first pointer as well ?
delete next;
next = new someObject();
};
对方法的说明: 它应该首先与第二个交换并在第二个创建一个“someObject”的新实例,它不应该像 = FIRST = SECOND、SECOND = FIRST 那样交换。只是 first 变成了 second ,而 second 变成了一个新的对象或指向一个对象的新指针。
第二 = 下一个。
解决方案
void Swap(someObject*& first, someObject*& next)
{
std::swap(first, next);
next = new someObject();
};