Раздел [7.19.6.13] - Функция vsprintf
стандарта C99 не устанавливает, что буфер вывода может быть NULL
.
Возможно, вы захотите использовать vsnprintf
:
int len = vsnprintf(NULL, 0, fmt, ap)
Если вызов успешен, возвращаемое значение - это количество символов, которое было бы записано, если бы буфер был достаточно большим, исключая терминатор NUL.Это похоже на _vscprintf
, который также не включает терминатор NUL в свой счет.