title: Dynamic memory allocation in C
body: <p>i just experiment the things on the c language 
  could you answer my question regarding the program i've written</p>
  
  <pre><code>void main()
  {
      char *p,; // created a  pointer pointing to string
      p = (char *) malloc(50); // dynamically create 50 bytes.
      strcpy(p, "this code is written about the dynamic allocation");
      p += 20;
      free(p);
  }
  </code></pre>
  
  <p>Now could anyone tell me what is the effect of free(p) statement will the last 30 bytes will be freed of and used for the future memory allocation.? what would be the output?</p>