title: pointer being realloc'd was not allocated
body: <p>Actually this is a pure C prog.when i compile with Xcode. error
   message says "pointer being realloc'd was not allocated"</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;time.h&gt;
  int LocateElem(int *p1,int e,int leng1);
  void Display(int max, int array[]);
  int GetElem(int * p, int pass);
  int Union(int *p1,int *p2, int leng1, int leng2);
  int ListInsert(int *p, int e, int lengA);
  int* GetData(int* pArray, int Array_size);
  void Show(int *p, int leng);
  
  void InitList_Sq(int  *L);
  int *p_A,*p_B;
  int m,n;
  
  int main()
  {
      clock_t begin, end;
      double  cost;
      begin = clock();
  
  
      printf("How many elements of A u want:");
      scanf("%d",&amp;m);
      if (m&lt;0) {
          printf("Error!");
          return 0;
      }
      printf("How many elements of B u want:");
      scanf("%d",&amp;n);
      if (n&lt;0) {
          printf("Error!");
          return 0;
      }
  
      p_A=(int *)malloc(m*sizeof(int));
      p_B=(int *)malloc(n*sizeof(int));
      if (p_A==NULL) {
          printf("Error allocating memory!\n"); //print an error message
          return 0; //return with failure
      }
      if (p_B==NULL) {
          printf("Error allocating memory!\n"); //print an error message
          return 0; //return with failure
      }
  
      int *pLast_A, * pLast_B;
      printf("Array A is :\n");
      pLast_A=GetData(p_A, m);
      printf("\nArray B is :\n");
      pLast_B=GetData(p_B, n);
  
      int newLeng;
      newLeng=Union(p_A,p_B,m,n);
  
      printf("\nThe Union set is :\n");
      Show(p_A, newLeng);
  
      free(p_A);
      free(p_B);
      end = clock();
      cost = (double)(end - begin) / CLOCKS_PER_SEC;
      printf("\n%lf seconds", cost);
      return 1;
  
  
  }
  
  
  int* GetData(int* pArray, int Array_size){
      int* pFill= pArray;
      int count;
      srand((unsigned) time(NULL));
      for ( count=0; count&lt; Array_size; count++) {
          *(pFill+count)=rand()%1000;
          printf("%d\t", * (pFill+count));
      }
      return pFill+count;
  }
  
  
  int Union(int *p1,int *p2, int leng1, int leng2){
      for (int count=0; count&lt;leng2; count++) {
          int e=GetElem(p2, count);
          while(LocateElem(p1, e, leng1)==0){
              leng1=ListInsert(p1, e, leng1);
          }
      }
      return leng1; 
  }
  
  int GetElem(int *p, int pass){
      return  *(p+pass);
  }
  
  int LocateElem(int *p1,int e,int leng1){
      for (int count=0; count&lt;leng1; count++)
          if (e==*(p1+count))
              return 1;
          else
              return 0;
  
  }
  
  int ListInsert(int *p, int e, int lengA){
      lengA+=1;
      int* temp;
      temp=(int*)realloc(p, lengA*sizeof(int));
      if (temp==NULL) {
          printf("Error allocating memory!\n"); //print an error message
          free(temp);
          return 0; //return with failure
      }
      else{
          p=temp;
          *(p+lengA-1)=e;
  
      }
      return lengA;
  
  }
  
  void Show(int *p, int leng){
      for (int count=0; count&lt;leng; count++) {
          printf("%d\t", *(p+leng));
      }
  }
  </code></pre>
  
  <p>After compilation xcode gives the breakpoint at the line <code>temp=(int*)realloc(p, lengA*sizeof(int))</code> with signal SIGABRT.</p>