title: Copy string form char pointer to char pointer
body: <pre><code>char * p_one = "this is  my first char pointer";
  char * p_two= "this is second";
  strcpy(p_one ,p_two);
  </code></pre>
  
  <p>consider the above code. This is giving access violation error.
  So please help to understand</p>
  
  <ol>
  <li>where is the current <code>"this is  my first char pointer"</code> string stored in memory? heap or stack</li>
  <li>why I need to allocate memory for p_one before call <code>strcpy</code>, even it's already storing the first string. why <code>"this is second"</code> string cannot copy to same location? </li>
  <li>If I allocate memory for p_one before call <code>strcpy</code> then what happen to <code>"this is  my first char pointer"</code> string that was pointed by p_one ? is it keep in memory?</li>
  <li>How <code>strcpy</code> knows specific pointer have allocated memory or not?</li>
  </ol>