title: strcpy when dest buffer is smaller than src buffer
body: <p>I am trying to understand the difference/disadvantages of strcpy and strncpy. 
  Can somebody please help: </p>
  
  <pre><code>void main()
  {
  char src[] = "this is a long string";
  char dest[5];
  
  strcpy(dest,src) ;
  printf("%s \n", dest);
  printf("%s \n", src);
  
  }
  </code></pre>
  
  <p>The output is: </p>
  
  <pre><code>this is a long string 
  a long string 
  </code></pre>
  
  <p>QUESTION: I dont understand, how the source sting got modified. As per explanation, strcpy should keep copying till it encounters a '\0', so it does, but how come "src' string got modified. </p>
  
  <p>Please explain. </p>