title: Confused about dtostrf function
body: <p>I am currently working on a personal AVR project and wrote a function for transmitting a double to my serial LCD screen using UART. For this, I convert a double into a char array and then transmit it char by char, serially.</p>
  
  <p>What confuses me is what the length of the char buffer array has to be. The length of the array does not seem to correspond to the size of a double. Funnily enough, I can set the the length of the array to 0, and it will still work, like this:</p>
  
  <pre><code>    void USART_Transmit_Double(double doubleNumber) {
  
      char aNumberAsString[0];
      dtostrf(doubleNumber, 3, 0, aNumberAsString);
  
      USART_Transmit_String(aNumberAsString);
  }
  </code></pre>
  
  <p>Here I am printing number 1234 in the main loop and it appears on my LCD just fine. If I change the precision to 1 however, the entire thing goes haywire.</p>
  
  <p>I tested the same function on my Arduino and keep getting completely different results, on it each character seems to correspond to each element of the array, so if I wanted to print 1234.2, I would have to set the buffer length to 6.</p>
  
  <p>So what's going on here?</p>