Les fonctions nullix allouent avec malloc, il ne vaut mieux pas s'en écarter sous peine de trash mem (malloc utilise des pools, donc FreeVec dessus ça ferait mal).
Donc au vu du prototype, ça donnerait ça, avec quelques petites corrections ici et là :
STRPTR asprintf(char **strp, const char *format, ...)
{
va_list va_args;
int_t len;
char *buffer;
va_start(va_args, format);
len = sprintf(NULL, format, va_args);
buffer = (char *) malloc(len);
if(buffer)
{
sprintf(buffer, format, va_args);
}
va_end(vl);
*strp = buffer;
return buffer;
}
Et à libérer avec free, donc.