que estoy tratando de devolver una matriz usando malloc en una función:memoria asignada gratuito antes de vuelta una función
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;
}
El problema es que necesito libre porque mi tamaño de la pila de MCU es limitada . Pero quiero devolverlo para que no pueda liberarlo en la función, ¿verdad ?. ¿Puedo liberar la memoria asignada fuera de la función (donde llamo a la función)? ¿Hay algunas mejores prácticas para esto? ¡Gracias de antemano!
Deberá liberarlo fuera de la función. No es necesario que la memoria malloc'd se libere dentro de la función de todos modos. – futureelite7
Por supuesto. Este es el punto completo de 'malloc'. Si no pudieras hacer esto, no habría habido ninguna razón para que 'malloc' alguna vez se haya creado. –