title: Why do I get a SIGABRT here?
body: <p>I have this code segment in which I am opening/closing a file a number of times (in a loop):</p>
  
  <pre><code>for(i=1;i&lt;max;i++)
       {
         /* other code */
         plot_file=fopen("all_fitness.out","w");
         for (j=0;j&lt;pop_size;j++)
           fprintf(plot_file, "%lf %lf\n",oldpop[i].xreal[0],oldpop[i].obj);
         fclose(plot_file);
        /*other code*/
       }
  </code></pre>
  
  <p>I get a SIGABRT here, with the following backtrace:</p>
  
  <pre><code>#0  0x001fc422 in __kernel_vsyscall ()
  #1  0x002274d1 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
  #2  0x0022a932 in *__GI_abort () at abort.c:92
  #3  0x0025dee5 in __libc_message (do_abort=2, fmt=0x321578 "*** glibc detected *** %s: %s: 0x%s ***\n")
      at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
  #4  0x00267ff1 in malloc_printerr (action=&lt;value optimized out&gt;, str=0x6 &lt;Address 0x6 out of bounds&gt;, ptr=0x8055a60) at malloc.c:6217
  #5  0x002696f2 in _int_free (av=&lt;value optimized out&gt;, p=&lt;value optimized out&gt;) at malloc.c:4750
  #6  0x0026c7cd in *__GI___libc_free (mem=0x8055a60) at malloc.c:3716
  #7  0x0025850a in _IO_new_fclose (fp=0x8055a60) at iofclose.c:88
  #8  0x0804b9c0 in main () at ga.c:1100
  </code></pre>
  
  <p>The line number 1100, is the line where I am doing the <code>fclose()</code> in the above code segment.  What is the reason for the above behavior? Any pointers is appreciated.</p>
  
  <p>(I am on Linux and using gcc)</p>