Estoy trabajando con listas y queria hacer una funcion que reserve memoria para un nuevo elemento y lo enlazase a la lista. ¿Hay algun problema por utilizar malloc dentro de una funcion?¿Se libera esa memoria una vez se retorna a main?
void NuevoNodo(struct nodo **lista, int direccion[])
{
struct nodo *cabeza;
cabeza=(struct nodo *)malloc(sizeof(struct nodo));
cabeza->siguiente=*lista;
/*Introducir los datos de la cabeza actualizada*/
cabeza->anterior=(*lista)->anterior;
cabeza->posicion[0]=(*lista)->posicion[0]+direccion[0];
cabeza->posicion[1]=(*lista)->posicion[1]+direccion[1];
(*lista)->anterior=cabeza; //enlazar la cabeza con el resto
/*Reapuntar a la cabeza*/
*lista=cabeza;
return;
}