title: what happens if puts() function doesn't encounter null character?
body: <p>Consider following program.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  int main(void)
  {
      char side_a[] = "Side A";
      char dont[] = {'W', 'O', 'W', '!' }; 
      char side_b[] = "Side B";
      puts(dont); /* dont is not a string */
      return 0;
  }
  </code></pre>
  
  <p>I know that puts() function stops when it encounters the null character. But in above program I haven't specified null character. So when it stops printing? Is this program invokes undefined behavior? Is it guaranteed to get same output for this program on various C compilers? What the C standard says about this?</p>