不会显示多个值

时间:2017-10-16 08:13:41

标签: c++ pointers linked-list

没有错误,但我期待10个值,但我只有一个。以下是我的创建和显示功能。

WM_NCDESTROY

我需要改变什么?

2 个答案:

答案 0 :(得分:0)

尝试以下一行

current = new_node;    
current->next = new_node;

因为在你的情况下没有current指针的值,所以如何更新它的下一个。首先更新/设置当前然后更新/设置它的下一个。

if (start == NULL)
    {
        start = new_node;
        current = new_node;
        current->next = NULL;
        new_node = NULL;
    }
    else
    {
        current = new_node;
        current->next = new_node;

    }

答案 1 :(得分:0)

编译器消息的问题是编译器无法确定else语句中使用的变量current是否已提前初始化。

如果是警告,您可以忽略它。

或者您可以通过以下方式重写该功能

void create()
{
    const int N = 10;

    node **current = &start;

    while ( *current ) current = &( *current )->next;

    for ( int i = 0; i < N; i++ )
    {
        *current = new node;
        ( *current )->data = randomNum();
        ( *current )->next = nullptr;
        current = &( *current )->next;
    }
 }

for循环的主体也可以写成(我假设数据成员data在节点定义中的数据成员next之前。否则交换初始化器。

*current = new node { randomNum(), nullptr };
current = &( *current )->next;