title: copy string to pointer failed in function in Clang
body: <p>below clang code run in ubuntu 18.04.2 LTS</p>
  
  <p>I expect to output <code>ptr3=123</code> the same as var <code>ptr2</code>,
  But the result is <code>ptr3=(null)</code>. How to modify the code that the result as I want?</p>
  
  <pre class="lang-c prettyprint-override"><code>#include &lt;stdio.h&gt;
  
  void ptr_copy(char* d, char* s)
  {
      d = s;
  }
  
  int main(){
      char *ptr = "123";
      char* ptr2;
      char* ptr3;
  
      ptr2 = ptr;
      ptr_copy(ptr3, ptr);
  
      printf("ptr2=%s\n", ptr2);
      printf("ptr3=%s\n", ptr3);
  
      // output 
      // ptr2=123
      // ptr3=(null)
  
  } 
  </code></pre>