При реализации этой структуры данных двусвязного списка я получаю ошибку сегментации: ошибка 11.
Я разместил свой код в виде изображения ниже:
#include<stdio.h>
#include<stdlib.h>
struct node
{
struct node* prev ;
int data ;
struct node* next ;
};
struct node* first=NULL ;
void create(int[],int);›
void display(struct node*);
int main()
{
int A[]={ };
int cap ;
printf("Enter how many elements do you want to insert in the Linked
List :\n");
scanf("%d",&cap);
printf("Enter the elements that you want to insert in the Linked List
in the form of a Array Stream :\n");
for(int i=0 ; i<cap ; i++)
{
scanf("%d",&A[i]);
}
create(A,cap);
display(first);
}
void create(int A[],int n)
{
struct node* t ;
struct node* last ;
first=(struct node*)malloc(sizeof(struct node));
first->data=A[0] ;
first->prev=NULL ;
first->next=NULL ;
last=first ;
for(int i=1 ; i<n ; i++)
{
t=(struct node*)malloc(sizeof(struct node));
t->data=A[i];
t->prev=last ;
t->next=NULL ;
last->next=t ;
last=t ;
}
}
void display(struct node* p )
{
printf("\n");
printf("The Elements that are present in the Linked List are :\n");
while(p!=NULL)
{
printf("%d-->",p->data);
p=p->next ;
}
}
Пока я пытаюсь запустить программу и предположим, например, что я вставляю 2-3 элемента в связанный список в виде массива, он работает нормально, но когда я пытаюсь вставить более 3 элементов, этодает мне ошибку сегментации: ошибка 11