Prints message to the buffer. If the buffer is large enough to hold themessage, it returns buffer. If buffer is to small, it allocates a largeenough buffer on heap and returns allocated buffer.
This is a supposed use case: char buf[5], *p = buf; p = mg_avprintf(&p, sizeof(buf), "%s", "hi there"); use_p_somehow(p); if (p != buf) { free(p); }The purpose of this is to avoid malloc-ing if generated strings are small.