Зачем использовать asprintf () вместо sprintf ()?

Мне трудно понять, зачем вам нужен asprintf. Здесь в руководстве это говорит

Функцииasprintf() а такжеvasprintf() являются аналогамиsprintf(3) а такжеvsprintf(3)за исключением того, что они выделяют строку, достаточно большую, чтобы содержать выходные данные, включая завершающий нулевой байт, и возвращают указатель на нее через первый аргумент. Этот указатель должен быть переданfree(3) освободить выделенное хранилище, когда оно больше не нужно.

Итак, вот пример, который яЯ пытаюсь понять:

asprintf(&buffer, "/bin/echo %s is cool", getenv("USER"));

Какие'Разница в том, что буфер выделяет строку, достаточно большую по сравнению со словами char * = (string)

Ответы на вопрос(2)

Ваш ответ на вопрос