|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
[C] Trasmissione per indirizzo a funzione ricorsiva
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...
__________________
"Grandi menti discutono di idee, menti mediocri discutono di eventi, piccole menti discutono di persone." |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
Credo di avere risolto. A causa del typedef Pippo è già un puntatore quindi non occorre mettere &P ma solo P. Giusto?
![]()
__________________
"Grandi menti discutono di idee, menti mediocri discutono di eventi, piccole menti discutono di persone." |
![]() |
![]() |
![]() |
#3 |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Sembrerebbe di si': "typedef struct pippo *Pippo;" dice che "Pippo" e' un nuovo nome per i puntatori a "struct pippo".
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:15.