下面的代碼應該在鏈表的前面添加一個節點並打印當前元素。但是運行這段代碼會導致運行時錯誤並且程序終止。當詢問有多少個數字時,我輸入一個數字,然後顯示「main.cpp已停止工作」。什麼可能是錯的?在鏈表列表前插入節點
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
struct Node
{
int data;
Node* next;
};
struct Node* head;
using namespace std;
void Insert(int x)
{
Node* temp=new Node();
temp->data=x;
temp->next=head;
head=temp;
}
void Print()
{
Node* temp1=head;
while(temp1!=NULL)
{
printf("%d\n",temp1->data);
temp1=temp1->next;
}
printf("\n");
}
int main()
{
head=NULL;
printf("how many numbers?\n");
int n,i,x;
scanf("%d",n);
for(i=0;i<n;i++)
{
printf("Enter the number: \n");
scanf("%d",x);
Insert(x);
Print();
}
return 0;
}
尋求調試幫助的問題('**爲什麼不是這個代碼工作?**')必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現**的最短代碼** 。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – Biffen
'scanf(「%d」,&n);'請注意&符號 –
在旁註:您應該學會清理 - 刪除您在完成時分配的內存 – Unimportant