title: What's the difference between malloc and tc_malloc?
body: <p>for a code main.c:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  int main()
  {
      void* p = malloc(1000);
      free(p);
      return(0);
  }
  </code></pre>
  
  <p>1st compile:  <code>gcc main.c -o a.out</code></p>
  
  <p>2nd compile:  <code>gcc main.c -ltcmalloc -o a.out</code></p>
  
  <p>1st use glibc stdlib，2nd use tcmalloc</p>
  
  <p>and I can write main.c like this:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;google/tcmalloc.h&gt;
  int main()
  {
      void* p = tc_malloc(1000);
      tc_free(p);
      return(0);
  }
  </code></pre>
  
  <p>3rd compile: <code>gcc main.c -ltcmalloc -o a.out</code></p>
  
  <p>3rd is surely use tcmalloc</p>
  
  <p>Is the 2nd and 3rd compile the same ?</p>
  
  <p>I know tcmalloc support more functions like <code>tc_malloc_size</code> / <code>tc_valloc</code>, I guess use tc_* functions is better option to write main.c, so I have more functions ?</p>
  
  <p>I can't find any man page for functions like tc_valloc / tc_new / tc_newarray / tc_valloc / tc_pvalloc</p>