Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto θ il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore piω ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte piω ampia, Dynamic Island piω piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciς che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Al via le offerte Amazon Prime e tutte l...
Prime Day e Amazon Seconda Mano: sconto ...
Cuffie e auricolari in offerta Prime Day...
Prime day: 7 mini PC in super sconto da ...
Scope elettriche e lavapavimenti Prime D...
Smartphone Prime Day: le migliori occasi...
Microsoft 365 Family in offerta Prime Da...
E-bike in offerta Prime Day: HillMiles e...
Prime Day TV: OLED LG B6E 65'' a 1.299€,...
Portatili in offerta Prime Day: i 5 migl...
300 milioni di dollari di server NVIDIA ...
'Io sono Giorgia': la Premier Meloni reg...
Galaxy S27 Ultra con Exynos 2700, Samsun...
Altman: tra OpenAI e Anthropic sulla sic...
Tesla Robotaxi, la notte è ancora...
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: 06:02.


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