Существует много функций (особенно в библиотеке POSIX), которые возвращают указатели на почти обязательно свежие данные. На их страницах не сказано, нужно ли их освобождать или есть какой-то неясный механизм в игре (например, возвращение указателя на статический буфер или что-то в этом роде).
Например, inet_ntoa
функция возвращает char *
, скорее всего, из ниоткуда, но на странице руководства не указано, как она была выделена. В итоге я вместо этого использовал inet_ntop
, потому что, по крайней мере, я знал, откуда взято назначение.
Каково стандартное правило для функций C, возвращающих указатели? ВОЗ' отвечает за освобождение своей памяти?