title: Dynamic vs static array in c
body: <p>The following code creates an array with the malloc function. But i know that this can be done much simplier with just int array[size]. I think this is static array. But with the malloc function is it dynamic array? I found this code in the net... What is really happening and whats the difference between a static array and a dynamic array(and static memory between heap memory). Can you change the size of the dynamic array during runtime? or... what i dont know exactly... If someone could explain i would appreciate :)</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  
  int main(void)
  {
      int size;
      int i;
      printf("Choose size of array: ");
      scanf("%d",&amp;size);
  
      /*---MALLOC/FREE---*/
      int *m_array = (int *)malloc((size+1)*sizeof(int));
      memset(m_array,'\0',size+1);
  
      for(i=0; i&lt;size ; i++)
      { 
          m_array[i]=i;
          printf("%d ",m_array[i]);
      }
      printf("\n");
      free(m_array);
  
      return 0;
  }
  </code></pre>