将指针作为函数参数的引用
reference of pointer as a function argument
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]);
如果没有添加节点,这当然会泄漏内存!(所以也许你应该在addNode
中添加else { delete temp; }
。
相关文章:
- 将const引用参数初始化为默认参数会导致悬空引用吗
- 通过常量引用传递参数的矩阵模板类
- 非类型指针和引用模板参数,以及在编译时如何/为什么解析它们.c++
- 何时应通过引用传递矢量参数而不是按值传递矢量参数?
- 具有常量引用参数的函数模板专用化
- 作为参数引用
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 如何传递带有通过引用传递的结构参数的函数?
- 将输入参数作为右值引用传递?
- 使用引用与指针将数组作为参数传递
- 根据模板参数引用不同基类的函数
- 默认情况下C++数组作为参数引用
- 对指针C++的参数引用
- 作为非类型模板参数引用
- 重用返回语句或按参数引用返回
- 将参数引用传递给函数C++
- 从另一个参数引用的模板可变参数
- 成员变量多态性和参数引用
- 按参数引用或按参数引用之间的差异
- 无法实例化抽象类:为什么模板参数(引用)导致这种情况