title: C - Error with strcat
body: <p>What's the error in this code? I've got an error </p>
  
  <pre><code>error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead
  </code></pre>
  
  <p>What it's mean? Another question - the declaration of the struct and the function prototype is legal?</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  
  void main()
  {
      char *join(char *, char *);
      printf("%s \n", join("duck", "soup"));   
  }
  
  char *join(char *s1, char *s2)
  {
      struct {
          char buf[256];
      } string;
  string.buf = "abcd";\\ new line. error l-value.
      return strcat(strcpy(string.buf, s1), s2);
  }
  </code></pre>
  
  <p>The new line - why there is an error? isn't <code>string.buf</code> a char pointer? what's the problem with <code>char *s="abcd"</code>?
  Thanks!:)</p>