Когда вы выделяете память в функции, автоматически ли она освобождается при возврате?
Зависит от того, как вы выделяете память.
Если вы используете malloc()
, calloc()
или realloc()
для выделения памяти, тогда она не будет освобождена до тех пор, пока / или программа не освободит ее явно (например, с помощью вызова free()
где-нибудь).
Если вы используете локальные переменные (например, char new_str[length];
), чтобы выделить память, тогда она будет освобождена, когда функция вернется.