История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Конечный, конечно. Я же многоточие проставил опустив проверки, ну хорошо вот тогда так,выясняем какой размер нам нужен, выделяем, заполняем и впиндюриваем конец строки, но суть то одна.
int len = 0;
char * buffer = malloc(sizeof(char) * (len = vsnprintf(NULL,0,fmt,args)+1) );
vsnprintf(buffer,len,fmt,args);
buffer[len]='\0';
Конечно и тут проверки нужны, но всё же.
Исправление LINUX-ORG-RU, :
Конечный, конечно. Я же многоточие проставил опустив проверки, ну хорошо вот тогда так,выясняем какой размер нам нужен, выделяем, заполняем и впиндюриваем конец строки, но суть то одна.
int len = 0;
char * buffer = malloc(sizeof(char) * (len = vsnprintf(NULL,0,fmt,args)+1) );
vsnprintf(buffer,len,fmt,args);
buffer[len]='\0';
Исходная версия LINUX-ORG-RU, :
Конечный, конечно. Я же многоточие проставил опустив проверки, ну хорошо вот тогда так, но суть то одна.
int len = 0;
char * buffer = malloc(sizeof(char) * (len = vsnprintf(NULL,0,fmt,args)+1) );
vsnprintf(buffer,len,fmt,args);
buffer[len]='\0';