title: Segmentation fault (core dumped) when free an array
body: <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;time.h&gt;
  
  int main(int argc, char * argv[])
  {
      /*
          arguments from command line:
          N: dimension of each tuple
          M: maximum possible number of attributes
              a tuple can take
      */
      int N,M;
      N = atoi(argv[1]);
      M = atoi(argv[2]);
  
      // Ln store attribute range from 0 to Ln[i]-1;
      int * Ln = (int *)malloc(N);
      //int Ln[N];
      //printf("N: %d, M: %d\n",N,M);
      /*
          to generate parameters to file "repo_file.txt"
      */
  
      int i,seed,p1,p2,p3;
      seed = time(NULL);
      p1 = 762; p2 = 8196; p3 = 9765;
      for(i=0;i&lt;N;i++)
      {
          seed  = (p1*seed+p2)%p3;
          srand(seed);
          Ln[i] = (rand()%M+1);
          printf("%dth element: %d \n",i,Ln[i]);
      }
  
     free(Ln);
     return 0;
  }
  </code></pre>
  
  <p>I am going to assign some random numbers to a array as coded above.
  However, I get the error like: segmentation fault (core dumped), seems it's caused by the free() call.</p>