Potresti provare a modificare il caso base così:
cioè in pratica deallochi ciò che allochi prima della chiamata ricorsiva e di cui poi non ti servi. Questo ovviamente sempre se ho capito bene come opera la funzione... quindi tu che ne conosci sicuramente meglio la logica controlla se può andare bene (ma mi sembra di sì comunque...)codice:if ((head1==NULL) && (head2==NULL)){ delete head3; head3 = NULL; return; }
In ogni caso, visto che la tua è una void function, ti consiglio di evitare scritture tipo
perché equivale a dire: "restituisci alla funzione chiamante il valore restituito da polinomiosomma chiamato con questi argomenti"... ma polinomiosomma, essendo dichiarato come void function (cioè come procedura) non restituirà mai nulla...codice:return polinomiosomma(head1->link,head2,head3->link);
Ti basta semplicemente scrivere
in maniera tale da attivare ricorsivamente la funzione ma senza restituzioni di valori (che non esistono!)codice:polinomiosomma(head1->link,head2,head3->link);

Rispondi quotando