22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
int
vasprintf(char **string, const char *format, va_list arguments)
{
int length;
va_list argumentsCopy;
va_copy(argumentsCopy, argumentsCopy);
if ((length = vsnprintf(NULL, 0, format, argumentsCopy)) < 0)
return length;
if ((*string = malloc((size_t)length + 1)) == NULL)
return -1;
return vsnprintf(*string, (size_t)length + 1, format, arguments);
|
|
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
int
vasprintf(char **string, const char *format, va_list arguments)
{
int length;
va_list argumentsCopy;
va_copy(argumentsCopy, arguments);
if ((length = vsnprintf(NULL, 0, format, argumentsCopy)) < 0)
return length;
if ((*string = malloc((size_t)length + 1)) == NULL)
return -1;
return vsnprintf(*string, (size_t)length + 1, format, arguments);
|