Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-02-2008, 13:22   #1
diego86
Senior Member
 
L'Avatar di diego86
 
Iscritto dal: Mar 2004
Città: Milano
Messaggi: 415
[C] liste e funzioni

Ho un problema con le funzioni di inserimento in una lista ordinata.
Devo inserire in una lista di assex vuota, una lista di asse y vuota alla quale assegnerò una biglia. Il problema è che il tutto funziona, assegno la biglia, ma poi tornando alla funzione chiamante, il puntatore alla nuova struttura rimane NULL.

void inseriscix(struct assex *pl, int x, int y, struct biglia *b)
{ if(pl==NULL) {
pl=malloc(sizeof(struct assex));
(*pl).x=x;
(*pl).nextx=NULL;
(*pl).nexty=NULL;
inserisciy((*pl).nexty,x,y,b);
return;
}
}

void inserisciy(struct assey *pl, int e, int z, struct biglia *b)
{ if(pl==NULL) {
pl=malloc(sizeof(struct assey));
(*pl).x=e;
(*pl).y=z;
(*pl).nexty=NULL;
(*pl).b=b;
return;
}
}

Quindi inseriscix richiama inserisciy che assegna correttamente la biglia (ho verificato con il debug), ma quando ritorna il comando a inseriscix, mi da che (*pl).nexty = NULL invece che puntare all'indirizzo della nuova struttura creata dalla funzione inserisciy.
Lo stesso problema lo riscontro nel ritorno da inseriscix al main.
dov'è l'errore? grazie..
__________________
Ho concluso con Worp, -V3G3TA-, Marco911, TheDragon81, ciociola
------------------------------------------------
Diego
diego86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-02-2008, 15:00   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Leggi qui:
http://www.hwupgrade.it/forum/showpo...28&postcount=3
Ti trovi davanti alla stessa situazione, il valore assegnato a pl, in entrambi i casi, viene perso perché hai passato il puntatore pl per valore. O passi pl per indirizzo o ritorni pl alla fine della funzione.

Attenzione: (*pl).x equivale a pl->x
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-02-2008, 15:24   #3
diego86
Senior Member
 
L'Avatar di diego86
 
Iscritto dal: Mar 2004
Città: Milano
Messaggi: 415
struct assey* inserisciy(struct assey *pl, int e, int z, struct biglia *b)
{ if(pl==NULL) {
pl=malloc(sizeof(struct assey));
(*pl).x=e;
(*pl).y=z;
(*pl).nexty=NULL;
(*pl).b=b;
return pl;
}
}

perchè non funziona nemmeno così??
__________________
Ho concluso con Worp, -V3G3TA-, Marco911, TheDragon81, ciociola
------------------------------------------------
Diego
diego86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-02-2008, 15:29   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Come hai richiamato quella funzione ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-02-2008, 15:45   #5
diego86
Senior Member
 
L'Avatar di diego86
 
Iscritto dal: Mar 2004
Città: Milano
Messaggi: 415
void inseriscix(struct assex *pl, int x, int y, struct biglia *b)
{ if(pl==NULL) {
pl=malloc(sizeof(struct assex));
(*pl).x=x;
(*pl).nextx=NULL;
(*pl).nexty=NULL;
(*pl).nexty=inserisciy((*pl).nexty,x,y,b);
return;
}
}
__________________
Ho concluso con Worp, -V3G3TA-, Marco911, TheDragon81, ciociola
------------------------------------------------
Diego
diego86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-02-2008, 15:52   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La stessa cosa la devi fare anche per inseriscix, altirmenti il chiamante non trova pl modificato
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-02-2008, 15:55   #7
diego86
Senior Member
 
L'Avatar di diego86
 
Iscritto dal: Mar 2004
Città: Milano
Messaggi: 415
si ma con questo codice, all'interno di inseriscix, al termine della funzione mi da che pl contiene la x corretta e due puntatori a null...
quello a nextx giustamente, ma quello a nexty (viste le modifiche di inserisciy) dovrebbe essere diverso da null..

ho riprovato e funziona... grazie mille...adesso modifico anche inserisci x per il ritorno al main...speriamo tutto bene
__________________
Ho concluso con Worp, -V3G3TA-, Marco911, TheDragon81, ciociola
------------------------------------------------
Diego

Ultima modifica di diego86 : 29-02-2008 alle 16:13.
diego86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Cuffie e sostanze chimiche: uno studio e...
Terremoto sui dazi USA: la Corte Suprema...
Arianespace potrebbe lanciare il primo r...
Google Pixel 10a disponibile al prezzo m...
Microsoft Copilot nei guai: email riserv...
AOC a 399€ su Amazon: QD-OLED 240 Hz e 0...
La Cina ha recuperato dal mare il primo ...
Boeing CST-100 Starliner: la NASA rende ...
hiop e TaDa uniscono le forze per trasfo...
Thermal Grizzly mostra il Ryzen 7 9850X3...
AMD Ryzen 'Olympic Ridge' Zen 6 per desk...
Donald Trump renderà pubbliche in...
Prezzo mai visto da mesi: ECOVACS DEEBOT...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:28.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v