#include #include int vasprintf(char **strp, char const *format, va_list args1) { va_list args2; va_copy(args2, args1); int count = vsnprintf(NULL, 0, format, args1); va_end(args1); char *str = malloc(count + 1); if(str) count = vsnprintf(str, count + 1, format, args2); va_end(args2); if(!str) return -1; *strp = str; return count; }