初始化起始对象时编译时间错误

时间:2019-01-16 09:13:17

标签: c++ data-structures graph

我想将变量初始化为nodes[_node]的值,但是它给出了错误。

我尝试了start = &nodes[_node];,它没有给出任何错误,但是我不想初始化我想初始化值的地址。

#include <iostream>

using namespace std;

struct  graph
{
    int data;
    struct graph *next;
};

struct graph *nodes =  new graph[5];

void connectnode(int _data,int _node)
{
    struct graph *start = nodes[_node];

    struct graph *temp = new  graph;

    temp ->data = _data;
    temp ->next = nullptr;

    if(start == nullptr)
        start->next = temp;
    else
    {
        while(start != nullptr)
            start = start->next;

        start->next = temp;
    }

}

错误是:

Compile time error - cannot convert 'graph' to 'graph*' in initialization

1 个答案:

答案 0 :(得分:0)

通过nodes[_node];,您将获得数组graph的元素,因此,您将获得graph类型。但是,您正在将此元素分配给类型为struct graph *start的指针。

因此该行应为:

struct graph *start = &nodes[_node];

我不明白您为什么不想这样做,但如果是这样,您可以尝试:

struct graph start = nodes[_node];