Нет причин, по которым snprintf () должен вызывать malloc ().Точка.
Но, однако, вы не можете быть уверены, не просмотрев источник.И даже тогда вы не можете быть уверены, что так будет и дальше.
Если вы хотите быть абсолютно уверены, чем вы, возможно, захотите реализовать свой собственный snprintf ().