Освободите выделенную память перед возвратом функции

Я пытаюсь вернуть массив с помощьюmalloc в функции:

char* queueBulkDequeue(queueADT queue, unsigned int size)
{
    unsigned int i;
    char* pElements=(char*)malloc(size * sizeof(char));
    for (i=0; i<size; i++)
    {
        *(pElements+i) = queueDequeue(queue);
    }
    return pElements;
}

Проблема в том, что мне нужноfree это потому, что размер кучи моего MCU ограничен. Но я хочу вернуть его, поэтому я не могу освободить его в функции, верно? Могу ли я освободить выделенную память вне функции (где я вызываю функцию). Есть ли лучшие практики для этого? Заранее спасибо!

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

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