在ubuntu中执行程序时C中的分段错误

时间:2017-08-17 01:23:24

标签: c ubuntu segmentation-fault

Graph

我不知道这个程序有什么问题。每次我尝试编译该程序时都会发生错误:"分段错误(核心转储)"。我在Ubuntu做这个程序。分段错误意味着什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

也许下次你应该使用调试器。

  #include<stdio.h>
  #include<stdlib.h>
  struct node
  {
      int data;
      struct node *next;
  };
  struct node *head;
  void insert(int a)
  {
>     struct node* temp=malloc(sizeof(struct node));
      struct node* temp1;
>     if(head==NULL)
      {
          temp->data=a;
          temp->next=NULL;
          head=temp;
          return;
      }
>     else
      {
          temp1=head;
          temp->data=a;
>         temp->next=NULL;
          while(temp1->next!=NULL)
          {
>             temp1=temp1->next;
          }
>         temp1->next=temp;
      }
  }
  void print()
  {
      struct node* temp2;
      temp2=head;
>     while(temp2!=NULL)
      {
          printf("the data are %d",temp2->data);
>         temp2=temp2->next;
      }
  }
  int main()
  {
      int n,a,i;
      printf("how many number");
      scanf("%d",&n);
      head=NULL;
>     for(i=0;i<n;i++)
      {
          printf("enter the no. to store");
          scanf("%d",&a);
          insert(a);
          print();
      }
  }