我试图用Nodes创建一个基本的积分列表(我还应该指出,我正在通过做这个练习学习指针)
typedef struct Node {
int data;
struct Node *next;
} Node;
但似乎并不奏效。每次我试图打印列表时,它都会显示随机值这是我的代码。
Node *head = NULL; // The head of the list - global
void push(int d) {
Node newNode;
if (head == NULL)
{
printf("In\n");
head = &newNode;
(*head).data = d;
}
else
{
printf("In2");
newNode.next = head;
head = &newNode;
}
void printList() {
while (head != NULL)
{
printf("In while\n");
printf("%d",(*head).data);
head = head->next;
}
}
当我试着做例如: push(1);
和 printList()
我得到。263958281
或任何其他随机值.有人知道为什么吗?
PS:如果我试着去做。
push(1);
push(2);
printList();
我的理想输出将是。
2 1