|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Gières
Messaggi: 3617
|
[C] funzione cancella lista
sto cercando di implementare una funzione a cui passo una lista con testa elemento dummy e una stringa che indica i blocchetti della lista che devo cancellare
ho scritto questo, ma cancella solo il primo elemento della lista che trova con quel nome e lascia tutti gli altri elementi della lista con quel nome invariati ecco: Codice:
void cancella2(proprieta *testa2,char nome[21])
{
proprieta*p;
p=testa2;
proprieta*prec,*corr,*tmp;
prec=p;
corr=p->next;
while(corr!=NULL && strcmp(corr->nome,nome)!=0 ){
prec=corr;
corr=corr->next;
}
if(corr!=NULL){
tmp=corr;
prec->next=corr->next;
free(tmp);
}
}
__________________
Intel i5 4570 - Gigabyte Z87-HD3 - Antec KÜHLER 620 V4 - Corsair/Kingston 16GB DDR3 1600Mhz - KFA2 GTX 1070 EX @ EXOC bios - SanDisk Ultra II 480GB - EVGA 650GQ - Sony KDL-24EX320 - Logitech G502 & G933 - SteelSeries APEX M500 - W10 64bit |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Salvo errori che posso aver commesso per il gran caldo
Codice:
void cancella2 (proprieta **testa2,char nome[21])
{
proprieta *prop = *testa2;
proprieta *prev = NULL;
proprieta *next;
while (prop != NULL)
{
next = prop->next;
if (strcmp (prop->nome, nome) == 0)
{
if (prop == *testa2)
*testa2 = next;
else if (prec != NULL)
prec->next = next;
free (prop);
}
else
prec = prop;
prop = next;
}
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Gières
Messaggi: 3617
|
grazie infinite
nel codice hai diachiarato prev e poi hai usato prec... ho corretto e funziona perfettamente!! grazie grazie grazie
__________________
Intel i5 4570 - Gigabyte Z87-HD3 - Antec KÜHLER 620 V4 - Corsair/Kingston 16GB DDR3 1600Mhz - KFA2 GTX 1070 EX @ EXOC bios - SanDisk Ultra II 480GB - EVGA 650GQ - Sony KDL-24EX320 - Logitech G502 & G933 - SteelSeries APEX M500 - W10 64bit |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
'azz ... anticipato
lo stavo provando con la ricorsione beati voi che state scoprendo liste e puntatori ... qui sempre la solita storia ma andbin ... lavori senza aria condizionata ??? o stai a casa ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:30.



















