title: when i debug my programer,it shows program receive a signal SIGSEGV,segmentation fault
body: <p>this is the wrong code,while i transfer it in my main code , it shows program receive a signal SIGSEGV,segmentation fault.whats wrong with it?</p>
  
  <pre><code>char *DeleteList(LinkList L,char* e,int i)
  {
      LinkList p;
      p=(LinkList)malloc(sizeof(LNode));
      p=GetNode(L,i-1);
      *e=p-&gt;next-&gt;data;
      p-&gt;next=p-&gt;next-&gt;next;
      free(p);
  
      return e;
  }
  </code></pre>
  
  <p>the main function</p>
  
  <pre><code>int main()
  {
      char *e;
      LinkList L,p,z,q;
      L=CreatListH();
      p=(LinkList)malloc(sizeof(LNode));
      e=DeleteList(L,e,3);
      p=L;
      p=p-&gt;next;
      while(p!=NULL)
      {
          printf("%c",p-&gt;data);
          p=p-&gt;next;
      }
  </code></pre>
  
  <p>the head File statement</p>
  
  <pre><code>#define ERROR 0
  #define OK 1
  
  typedef struct LNode{
      char data;
      struct LNode *next;
  }LNode,*LinkList;
  
  LinkList CreatListH();
  LinkList CreatListT();
  LinkList GetNode(LinkList L,int i);
  LinkList LocateNode(LinkList L,char e);
  int InsertList(LinkList L,char e,int i);
  char *DeleteList(LinkList L,char* e,int i);
  int ListLength(LinkList L);
  void DifferenceList(LinkList La,LinkList Lb);
  </code></pre>