Я просто пытаюсь создать связанный список символов. Вот код:Почему эта простая программа связанного списка дает ошибку сегментации?
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node{
char data;
struct node *next;
};
void push(struct node** head,char ndata)
{
struct node* temp=(struct node*)malloc(sizeof(node));
temp->data=ndata;
temp->next=(*head);
*head=temp;
}
void display(struct node* head)
{
struct node* temp=head;
while(temp)
{
printf("%c ",temp->data);
temp=temp->next;
}
}
int main()
{
struct node* head;
int a=1;
push(&head,'a');
push(&head,'b');
push(&head,'c');
push(&head,'b');
push(&head,'a');
display(head);
getch();
return 0;
}
Я пользуюсь функцией push(), которая вставляет значения на голове. А затем с помощью display() для отображения значений в списке. Когда я запускаю программу, говорит, что «program10.exe перестает работать». Я не понимаю, в чем проблема. Может ли кто-нибудь помочь?
'SizeOf (узел)'? без 'typedef'? как?? –
Я использую компилятор Dev-CPP. Он автоматически «прикрепляет» typedef. – Siddharth