gpt4 book ai didi

c++ - 错误 : cannot convert Elem to Elem* for argument 1 to void addHead(Elem*, 元素 *)

转载 作者:行者123 更新时间:2023-11-30 03:05:23 26 4
gpt4 key购买 nike

我正在使用 g++ -g 编译我的代码,但我在标题中收到了错误消息。

这个错误与我做的一个函数有关,它的签名是:

void addHead( Elem *&start , Elem *newStart );

我将这两个变量传递给这个函数:

Elem * head;    
Elem * tempEl;

所以它看起来像这样:

addHead( *head , *tempEl );

实际的功能是:

void addHead( Elem start , Elem newStart )
{
Elem listItem;

listItem = newStart;
*listItem.next = start;
start = listItem;
}

它将第二个参数添加到从第一个参数开始的链表的开头。

我一直在用这个把我的头发拔掉。无论我做什么,我都会不断收到此错误!

cannot convert Elem to Elem* for argument 1 to void addHead(Elem*, Elem*)

编辑:忘了这个错误也在那里:

error: invalid initialization of reference of type Elem*& from expression of type Elem

最佳答案

它非常具体:您正在传递一个 Elem,但它需要一个 Elem*。特别是,headElem* 类型,但您传递的是 *head: Elem 类型。

此外,您的定义签名与您的定义不匹配,因此即使您修复了调用,当它找不到 addHead(Elem*, Elem*) 时您也会收到链接器错误.定义必须完全它们的签名(更准确地说,声明)。当然,这些更改都不会修复 addHead() 的实际实现,但那是的功课:)

关于c++ - 错误 : cannot convert Elem to Elem* for argument 1 to void addHead(Elem*, 元素 *),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7734346/

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