Gratuit alloué de la mémoire avant le retour d'une fonction

Je suis en train de retourner un tableau à l'aide de malloc dans une fonction:

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;
}

Le problème est que j'ai besoin de gratuit parce que ma MCU de la taille de segment de mémoire est limitée. Mais je tiens à le retourner donc je ne peux pas libre dans la fonction, à droite?. Puis-je libérer la mémoire allouée à l'extérieur de la fonction (lorsque j'appelle la fonction). Est-il des pratiques exemplaires pour cela? Je vous remercie à l'avance!

Vous devrez la libérer à l'extérieur de la fonction. Il n'est pas nécessaire que malloc avais mémoire doit être libérée à l'intérieur de la fonction, de toute façon.
Bien sûr. C'est l'ensemble de point de malloc. Si vous ne pouvait pas le faire, il n'y aurait eu aucune raison pour malloc à avoir jamais été créé.

OriginalL'auteur KiL | 2012-08-01