Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-12-2005, 19:26   #1
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
[C] Puntatori

Mi potete dire se ci sono errori in questo codice:

funzione1(int *a, int *b, int *c);
funzione2(int *a,*b);
funzione3(int *c);

main()
{
int a,b,c;
funzione1(&a,&b,&c);
}

funzione1(int *a, int *b, int *c)
{
funzione2(&a, &b);
funzione3(&c);
if(*a>*b) *c=*b;
}

Ho dei problemi con i puntatori in un programma e non ne capisco il motivo.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 20:14   #2
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da -Ivan-
Mi potete dire se ci sono errori in questo codice:

funzione1(int *a, int *b, int *c);
funzione2(int *a,*b);
funzione3(int *c);

main()
{
int a,b,c;
funzione1(&a,&b,&c);
}

funzione1(int *a, int *b, int *c)
{
funzione2(&a, &b);
funzione3(&c);
if(*a>*b) *c=*b;
}

Ho dei problemi con i puntatori in un programma e non ne capisco il motivo.
il primo errore è che non hai inizializzato a,b,c nel programma principale.
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 20:31   #3
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Quote:
Originariamente inviato da pietro84
il primo errore è che non hai inizializzato a,b,c nel programma principale.
Ah già, non ha senso fare l'if in questo caso, però a livello di puntatori ha senso questo codice?
Perchè nel programma che sto facendo non capisco il motivo per cui a volte necessito di passare una variabile a una funzione con la & davanti e altre volte no.
Il codice sopra per quanto riguarda l'uso dei puntatori ha degli errori?
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 20:34   #4
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da -Ivan-
Ah già, non ha senso fare l'if in questo caso, però a livello di puntatori ha senso questo codice?
Perchè nel programma che sto facendo non capisco il motivo per cui a volte necessito di passare una variabile a una funzione con la & davanti e altre volte no.
Il codice sopra per quanto riguarda l'uso dei puntatori ha degli errori?
mi sembra proprio di no. quando passi la variabile per valore non ci vuole l'operatore & . quando passi la variabile per indirizzo ci vuole l'operatore &,che restituisce appunto l'indirizzo della variabile a cui è applicato.
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 20:44   #5
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Quote:
Originariamente inviato da pietro84
mi sembra proprio di no. quando passi la variabile per valore non ci vuole l'operatore & . quando passi la variabile per indirizzo ci vuole l'operatore &,che restituisce appunto l'indirizzo della variabile a cui è applicato.
Ecco io dovrei passare tutte le variabili per indirizzo.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 20:56   #6
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
nel codice che hai dato
- due funzioni sono dichiarate ma non definite, quindi non si compila nulla
- i prototipi delle due funzioni che mancano non sono coerenti con il loro utilizzo

quando sei dentro a funzione1 a è di tipo int* (puntatore a intero), non è un intero.
quindi quando passi &a (l'indirizzo di a) non stai passando un puntatore a intero, bensì l'indirizzo della tua variabile a .
dato che a è già un puntatore passi un puntatore a puntatore, quindi il prototipo corretto è con i paramentri di tipo int** (puntatore a puntatore a intero).

per passare l'indirizzo della variabile intera che hai nel main dentro a funzione1 basta passare a che è già un indirizzo.
la deferenziazione sul maggiore e sull'uguale invece è corretta.

ciao
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 20:56   #7
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da -Ivan-
Ecco io dovrei passare tutte le variabili per indirizzo.
e allora devi mettere l'operatore & per le variabili,per gli array naturalmente non ci vuole perchè quando passi l'array ti riferisci già all'indirizzo del primo elemento.
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 21:03   #8
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da -Ivan-
Mi potete dire se ci sono errori in questo codice:
ce ne sono un paio:

Quote:
funzione1(int *a, int *b, int *c);
funzione2(int *a,*b);
qui non hai scritto "int" davanti a "*b".

Quote:
funzione3(int *c);

main()
{
int a,b,c;
qui, come ti hanno detto, è meglio inizializzare.

Quote:
funzione1(&a,&b,&c);
}

funzione1(int *a, int *b, int *c)
{
funzione2(&a, &b);
ennò!! qui stai passando due doppi puntatori a una funzione che vuole due puntatori singoli!!

Quote:
funzione3(&c);
e qui idem

inoltre presumo che prima di compilare tu abbia scritto anche l'implementazione di funzione2 e funzione3...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2005, 21:13   #9
pietro84
Member
 
L'Avatar di pietro84
 
Iscritto dal: Nov 2005
Messaggi: 154
Quote:
Originariamente inviato da NA01
nel codice che hai dato

dato che a è già un puntatore passi un puntatore a puntatore, quindi il prototipo corretto è con i paramentri di tipo int** (puntatore a puntatore a intero).
quoto, mi era sfuggito
pietro84 è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2005, 14:08   #10
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Ciao grazie a tutti delle risposte.
Questo codice non l'ho ovviamente compilato, ho buttato giù un paio di righe per esporre il concetto che non riuscivo a capire ma non sono riuscito a spiegarmi bene.
Il codice delle ultime funzioni non l'ho nemmeno scritto perchè non era una parte che mi interessava.
Il mio dubbio era questo:
se io passo una variabile per indirizzo a una funzione e questa funzione richiama un'altra funzione devo passare anche a quest'ultima quando la chiamo la variabile per indirizzo?
La risposta era no, questo era il dubbio cmq grazie a tutti.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
iPhone 18, il mistero sul destino della ...
Motorola lavora al nuovo Razr 70 Ultra: ...
Il programma di ridimensionamento di One...
L'industria statunitense non è co...
La NASA cambia strategia per le missioni...
Mike Fincke, l'astronauta che ha avuto u...
I Meta Ray-Ban Display potrebbero non ar...
La serie di God of War ha trovato l'attr...
Il nuovo iPhone Fold si farà atte...
Ex CEO di Intel furioso verso Wall Stree...
Un foglietto di rame e le prestazioni di...
100 agenti AI per dipendente: quello che...
Le 10 migliori offerte del weekend Amazo...
75'' e 85'' QD-Mini LED: 2 TV interessan...
Offerte Amazon sui componenti hardware P...
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: 18:22.


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