?
So läfut's...
char stringT[40];
va_start(args, string);
if ((vsprintf(stringT, string, args)) < 0)
{
return 0;
}
va_end(args);
n = strlen(stringT) + 1;
/* erzeugter string soll !%4 groß sein */
while (n & 3)
n++;
if (! (pDest = calloc(n, sizeof *pDest)))
{
return NULL;
}
memcpy(pDest, stringT, n);
Es kann so einfach sein...
PS: Ich sehe grade, dass ich die Rückgabe des vsprintfs ja eh schon auswerte, nur nicht, wie Ihr vorschlagt... Eiei, soviele Bäume, so wenig Wald...