Программа получила сигнал SIGSEGV, ошибка сегментации ! ! что это значит и как мне решить эту проблему?
#include<stdio.h> #include<conio.h> struct node *head=NULL; static int count=0; struct node { int coef; int pow; struct node *link; }; void showoff() { struct node *trace; trace=head; printf("\n"); printf("it's working!!!!!!!!!!!!!!!!'1"); while(trace!=NULL) { printf("| | | | |%x|-->",trace->link); trace=trace->link; printf("it's working!!!!!!!!!!!!!!!!'2"); } printf("it's working!!!!!!!!!!!!!!!!'3"); } void omega(int degree) { int i; struct node *temp,*t; temp=head; t=head; for(i=0;i<=degree;i++) { temp=(struct node*)malloc(sizeof(struct node)); //printf("temp it's working!!!!!!!!!!!!!!!!'\n"); if(count==0) { temp->link=head; head=temp; count++; //printf("count==0 it's working!!!!!!!!!!!!!!!!'\n"); } else if (count==1) { temp->link=head->link; head->link=temp; count++; //printf("count==1 it's working!!!!!!!!!!!!!!!!'\n"); } else { printf("else it's working!!!!!!!!!!!!!!!!'\n"); while(t->link!=NULL) { t=t->link; //printf("while loop of else it's working!!!!'\n"); } temp->link=t->link; t->link=temp; count++; //printf("outside else it's working!!!!!!!!!!!!!!!!'\n"); } printf("omega it's working!!!!!!!!!!!!!!!!'\n"); } } int main() { int opt,d; printf("---->!!!OPTIONS!!!<----\n"); printf("1.Enter first polynomial\n"); scanf("%d",&opt); switch(opt) { case 1: printf("Enter the degree of polynomial\n"); scanf("%d",&d); omega(d); showoff(); break; } }
Что я уже пробовал:
Прежде всего, этот код,который я написал, предназначен для создания связанного списка, поэтому, когда пользователь вводит номер узлов(здесь в программе он обозначается степенью), то программа должна создавать узлы, связанные друг с другом, но вместо этого, когда я запускаю программу, она останавливается после ввода входных данных, она действительно чувствует, что работает, а затем показывает, что она работает.
"Процесс вышел через 4,933 секунды с возвращаемым значением 3221225477
Нажмите любую клавишу, чтобы продолжить ... "
Я попытался отладить программу с моим сумасшедшим стилем написания операторов printf,как вы можете видеть в коде, и обнаружил, что "while loop", который находится внутри "else", не работает, и именно по этой причине программа терпит крах. Кто-нибудь знает, почему??? В коде нет никаких ошибок . Пожалуйста, помогите, это сводит меня с ума, Спасибо!