Прежде всего, прежде чем вы скажете мне, я проверил другие вопросы на этом сайте, и я следовал инструкциям. Тем не менее в моей программе есть ошибки.
вот код, который я сделал, но он вообще не запускается
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int num;
struct node *next;
}Tnode;
Tnode *head;
typedef Tnode *Tlist;
void insert(int);
void printlist();
Tnode *makenode(int x);
Tlist MakeList ();
void InsertAtEnd (Tlist list,int x);
void infoPrint (int info);
void PrintList(Tlist list);
int main(int argc, char** argv) {
int n,i,x;
Tlist list=MakeList();
printf("Creiamo una lista; quanti elementi vuoi inserire ? ");//translation "how many elements in the list ?"
scanf("%d",&n);
for(i=0;i<n;i++){
printf("\n Inserisci valore da inserire ");//translation "insert the element"
scanf("%d",&x);
InsertAtEnd(list,x);
PrintList(list);
}
return (EXIT_SUCCESS);
}
Tlist MakeList (){
return NULL;
}
void insert(int x){
Tnode *temp= makenode(x);
temp->next=head;
head=temp;
}
Tnode *makenode(int x){
Tnode *new=malloc(sizeof(Tnode));
if (new==NULL)
return NULL;
new->num=x;
new->next=NULL;
printf(".");
return new;
}
void infoPrint (int info) {
printf (" %d ", info);
}
void PrintList(Tlist list){
Tnode *node=list;
while(node!=NULL){
infoPrint(node->num);
node=node->next;
}
}
void InsertAtEnd (Tlist head,int x){
Tnode *newNode,*tmp;
newNode=makenode(x);
tmp=head;
while(tmp->next!=NULL){
tmp=tmp->next;
tmp->next=newNode;
}
}
Когда я его создаю, возникает 0 проблем. Когда я запускаю его, он останавливается, как только я вставляю первое значение в списке. Как мне заставить это работать?