Estava trabalhando na função eval quando tive alguns problemas de seg. fault. Então, olhando na descrição das funções acabei ficando confuso com o seguinte:
"Ao final a funcao retorna o endereco da celula no topo da 
 pilha de execucao. " : eval.c
"resultado = eval(iniFila, mostrePilhaExecucao); 
/* 4.9 mostre o resultado/valor da expressao */
 if (resultado)
 { 
 printf("Resultado: %f\n", resultado->vFloat);
 freeUtil(resultado);
 }" :main.c
"Recebe uma lista com cabeca iniLista de celulas do tipo
CelUtil e libera a area alocada por esta lista.": util.c
O problema é que se na função eval eu retornar com cabeça, o resultado no main.c vai pegar o valor da cabeça. Se eu retornar sem cabeça, o resultado pega o valor certo, mas aí a função que dá free no util.c não receberá uma lista com cabeça. 
Será que não podemos mudar o escopo da função que dá free, ou seria melhor mudar as linhas que mostram o resultado?