gpt4 book ai didi

c++ - 指针作为函数参数的引用

转载 作者:行者123 更新时间:2023-11-28 00:08:00 25 4
gpt4 key购买 nike

void SMatrix::setElement(int i, int j, double data)
{
Node* temp = new Node(data, i, j, NULL, NULL);
addNode(temp,(*this->rowsArr[i])); // this->rowsArr[i] is also Node*
}

void SMatrix::addNode(Node* temp, Node& list)
{

if (&list == NULL)
list = *temp;
}

所以我尝试将 temp 复制到列表作为引用,但这里的拷贝(我认为)是作为一个值,当函数结束时,没有任何变化并且列表保持为 NULL。我如何通过引用复制它并将临时文件保存在列表中?

最佳答案

检查 if (&list == NULL) 永远不会触发,因为对象的地址永远不会是空指针。

您可能想做的是通过引用传递指针:

void SMatrix::addNode(Node * temp, Node * & list)
{
if (list == NULL) { list = temp; }
}

然后调用它:

    Node* temp = new Node(data, i, j, NULL, NULL);
addNode(temp, this->rowsArr[i]);

如果没有添加节点,这当然会泄漏内存! (所以也许您应该将 else { delete temp; } 添加到 addNode。)

关于c++ - 指针作为函数参数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34463968/

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