title: Coredump in selfmade arrayList
body: <p>i'm current working on a homework assesment where i'm programming a program ment to stitch textfiles with a piece of an ascii image to create a complete image of all the pieces. The way i intended to write the code is having a while loop looking through a directory finding the parts and adding them to an array. However in my AddFile method(or when i call it to be precise) i get a coredump.. I just started working with c so i dont know if it is very obvious to some of you why i get a coredump or more complicated. Also, i originaly wrote the addFile method to use and accept int's instead of the FILE type, at that point it worked perfectly without any coredumps so i suspect (but hey i might be wrong) that it went wrong when i tried to implement it with the FILE type.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  typedef struct{
  int listSize;
  int listCapacity;
  FILE *fileStream;
  }FileList;
  
  void addFile(FileList* list, FILE file)
  {
      if((*list).listSize&lt;(*list).listCapacity)
      {
  
          (*list).fileStream[(*list).listSize]=file;
          (*list).listSize+=1;
  
      }
      else
      {
  
          FILE *tempArray = calloc((*list).listSize,sizeof(FILE));
          for(int i=0; i&lt;(*list).listSize; i++)
          {
              tempArray[i]=(*list).fileStream[i];
          }
          //Do something with array...
          free((*list).fileStream);
  
          (*list).listCapacity=((*list).listCapacity)*2;
          (*list).fileStream=calloc((*list).listCapacity,sizeof(FILE)); 
          for(int i=0; i&lt;(*list).listSize; i++)
          {
  
              (*list).fileStream[i]=tempArray[i];
          }
  
          (*list).fileStream[(*list).listSize]=file;
          (*list).listSize+=1;
  
          free(tempArray);
      }
  
  }
  int main()
  {
      FileList intList;
      intList.listSize=0;
      intList.listCapacity=1;
      intList.fileStream=calloc(intList.listCapacity,sizeof(int));
      int fileYcoord=0;
      int fileXcoord=0;
      while(1)
      {
  
          char fileName [100];
          int fileNameLength=sprintf(fileName,"part_%02d-%02d",fileXcoord,fileYcoord);
          FILE * pFile = fopen (fileName,"r");
          if(pFile!=NULL)
          {
              printf("- ! found file: %s - name length : %d \n",fileName,fileNameLength);
              addFile(&amp;intList,*pFile);
              fclose(pFile);
              fileXcoord++;
          }
          else
          {
              if(fileXcoord!=0)
              {
                  fileYcoord+=1;
                  fileXcoord=0;
              }
              else
              {
                  break;
              }
  
          }
      }
      printf("size %d , %d",fileXcoord, fileYcoord);
      free(intList.fileStream);
      return 0;
  }
  </code></pre>