|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
|
[C] PROBLEMA FREE !!!
Salve,
Ragazzi sono abbastanza impiccato con questo programma, poiche lo devo consegnare entro domani alle 10 ed è praticamente terminato tranne un bug che è da questa mattina che non riesco ad risolvere. Il codice qui presente si trova in una funzione di debug, da inglobare poi nel resto del programma. Il problema: Non riesco a elimare con la free il primo elemento della lista. Per tutti gli altri non ci sono problemi, ma se provo a eliminare il primo elemento mi restituisce un sgmentations fault. Ora chiunque sia in grado di darmi una mano lo ringrazio davvero...xke sto scelarndo almeno qnt sto sudando per risolvere qst esame. Codice:
void pop(M_player *ptop, F_player *B){
dbPRINT(ptop,B);
M_player *ptmp=ptop,*A=ptop,*ptFREE=ptop;
int tmp;
scanf("%d",&tmp);
/*EVENTALE IF SUL CONTROLLO di eliminare la testa...se negativo procedi con il resto dato che funziona..*/
//ptFREE = ptmp->next;
while (ptFREE->id!=tmp )
{ ptmp = ptFREE;
ptFREE = ptmp->next;
}
ptmp->next = ptFREE->next;
free (ptFREE);
}
Pensavo di mettere un if iniziale...ma come lo implemento???
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...Vendo : ROUTER STATION PRO, SISTEMA EMEDDED. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
E' che non mi sembra abbia granchè senso come l'hai scritto... intanto perchè c'è un free solo.
la cosa che dovresti fare è, in un ciclo Codice:
Node* cur = head;
while( cur )
{
Node* n = cur->next;
free( cur );
cur = n;
}
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2008
Città: mondovi
Messaggi: 1491
|
Quote:
__________________
MB: Aw9d-max CPU: E6600 @ 3,32ghz (vcore default 1,275), DDR2 2x1gb 3/4/4/12 @ 2,10V , VGA: POV 8800 GTS 320mb 648/1458/975. RAFFREDDAMENTO A LIQUIDO ARTIGINALE ...Vendo : ROUTER STATION PRO, SISTEMA EMEDDED. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:50.










...









