【发布时间】:2016-04-20 01:37:28
【问题描述】:
所以我试图调用这个函数,但对动态数据结构和链表不太熟悉,所以我一直弄错。到目前为止,这是我的代码:
struct Country
{
string name;
double population;
};
struct Node
{
Country ctry;
Node * next;
};
Node * world;
void push(Country data, Node * & list);
int main ()
{
Country data;
Node list;
push(data, list);
return 0;
}
我做错了什么?
【问题讨论】:
-
push的定义在哪里?
-
push() 引用一个指针(用于第二个参数)。您正在传递一个对象,而不是对指针的引用。
-
push (data, &list) 将其转换为指针。
-
@Mike:这也行不通,因为
&list是一个临时指针,您不能将临时指针绑定到非常量引用。所以要么从参数中删除引用,要么声明一个指向list变量的Node*变量,然后将Node*变量传递给参数。
标签: c++ struct linked-list