Do not snprintf() into one-byte string

When you declare
```c
char * combined = "";
```
the array `combined` becomes one-byte long (the terminating `\0`), so `snprintf()`-ing into it doesn't make much sense. Instead, we need to create a long enough buffer and then we'll be able to print stuff there.