Пойдите, к которому вы когда-либо подходите, вы чувствуете себя более гибким.
Если вы считаете, что пользователь выделил память, и пользователь должен освободить ее, то пусть он делает это по-своему.
Если вы считаете, что хотите облегчить жизнь пользователя, напишите подходящую бесплатную функцию и позвольте ему вызывать ее, если он считает, что должен ее вызвать.
Здесь вопрос также представляется расплывчатым, поскольку до тех пор, пока не будет представлено все требование, на этот вопрос невозможно ответить.