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

Я пытаюсь вернуть массив, используя 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;
}

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

10
задан KiL 1 August 2012 в 04:00
поделиться