Если я не установлю цель в NULL перед возвратом, будет ли цель удалена так, что фактическая цель узла, указывающая на, будет также удалена?
нет, нетdelete (в значении free ), только область, используемая в стеке для параметров и локальной переменной, включая target , больше не закрывается после того, как функция вернула
Существует проблема, когда вы возвращаете (независимо от способа) адрес локальной переменной и разыменовываете его, когда переменные исчезают
Примечание: вы используете typedef для маскировки указателей, это плохая идея, которая делает ваш код неясным и облегчает появление ошибок