为什么要打印?

时间:2019-12-27 01:12:41

标签: c++

我当前正在尝试创建一个程序,该程序创建一个单链列表,该单链列表接受输入,然后打印出链列表中的值。下面是应该打印出值的函数。

void Linked_list_return()
{
    Node* pointy;
    pointy = h;
    cout << pointy -> data;
} 

,而不是返回值,而是打印为0。我不知道下面是什么完整程序。

#include <iostream>
using namespace std;

class Node
{
public:
    int data;
    Node* next;
};

void Linked_list(int input_data, int &decision);
void Linked_list_return();
Node* h;

int main()
{
    int size_of;
    int input;
    cout << "How many numbers would you like to enter? " << '\n';
    cin >> size_of;
    cout << "What are the numbers?" << endl;
    while (size_of > 0)
    {
        cin >> input;
        Linked_list (input, size_of);
        size_of--;
    }
    cout <<  "Completed!" << endl;
    Linked_list_return();
    return 0;
}

void Linked_list(int input_data, int &decision)
{
    Node* n;
    Node* t;

    n = new Node();
    t = new Node();
    h = new Node();
    t->data = input_data;
    t->next = n;
    t = n;

    if (decision == 0)
    {
        n = new Node();
        t-> data = input_data;
        t -> next = NULL;
    }
}

void Linked_list_return()
{
    Node* pointy;
    pointy = h;
    cout << pointy -> data;
}

2 个答案:

答案 0 :(得分:1)

h = new Node; 因此它是新对象,表示实例化。 你也是 pointy = h;。 因此pointy->data将为0。

答案 1 :(得分:1)

您没有先为h分配任何内容,它为空