PDA

View Full Version : [C] Trasmissione per indirizzo a funzione ricorsiva


figulus
09-02-2005, 12:52
Ho un dubbio sulla sintassi.

Ho definito una struttura struct pippo{...} e poi dato un typedef struct pippo * Pippo. Ora ho bisogno di una funzione che lavori maneggiando Pippo e restituendolo modificato (tutto ciò è standard e di uso comune), chiamando a sua volta un'altra funzione, ricorsiva. Del tipo:

Pippo funzione1 (...){
Pippo P;
...
funzione2(&P, ...);
return(P);
}

void funzione2(Pippo *P, ...){
if (condizione){
funzione2(&P, ...);}
else
{*P=...;}
}

ma ho un segmentation fault e penso che sia causato da qualche errore di sintassi. Il passaggio per indirizzo che ho fatto è corretto?

P.S. L'ho già fatto in passato ma al posto di un puntatore su una struttura avevo un intero e tutto funzionava...

figulus
09-02-2005, 13:15
Credo di avere risolto. A causa del typedef Pippo è già un puntatore quindi non occorre mettere &P ma solo P. Giusto? :cool:

Ziosilvio
09-02-2005, 14:32
Sembrerebbe di si': "typedef struct pippo *Pippo;" dice che "Pippo" e' un nuovo nome per i puntatori a "struct pippo".