Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-11-2008, 20:40   #1
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 681
[C/PHP] Strani operatori per scrivere estensioni per PHP

Ciao a tutti,
Da un pò di tempo mi sto cimentando nello scrivere un estensione per PHP in C...
Però nel cammino ho incontrato operatori nuovi, mai visti, del tipo:
- (void**)&tmp
- zval ***data

Cosa diavolo sono quelli asterischi?!?
Posso capire 1, ma 3 cosa fanno?

Possibile che mi sia perso un operatore del C in "tanti" anni?

Datimi un consiglio per favore!
__________________
Codice:
Ho Concluso felicemente con : Horizont, Abadir_82, nicola1985, Spytek, Remoz, cristianobon70, salvi06, leleweb, xleaaz, Gekker, ilvise, alexxx19, CèTutto, pidegioan, paquito83, MaRcOmA1986
felix085 è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2008, 10:42   #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
Non sono operatori diversi, è solo l'operatore * ripetuto tante volte Poi non è nemmeno un operatore in quei casi.

Il primo è un cast esplicito dell'indirizzo di tmp a void **, cioè un puntatore a puntatore di tipo void.

Per il secondo il ragionamento è lo stesso, è un puntatore a puntatore a puntatore di tipo zval.
E' probabile che il secondo tu l'abbia trovato come parametro di una funzione.
Si può anche usare per allocare un vettore tridimensionale, ma l'uso più comune è quello del passaggio per puntatore di un vettore bidimensionale.

Ad esempio:
Codice:
void allocaMatrice(int ***m, int r, int c)
{
   *m = (int **)malloc(sizeof(int) * r);
   for(int i = 0; i < r; ++i)
      *m[i] = (int *)malloc(sizeof(int) * c);
}
La funzione si usa così:

int **m;
allocaMatrice(&m, 10, 5);

Si usa il passaggio per puntatore (o anche detto per indirizzo) in modo che i cambiamenti effettuati all'interno della funzione si riflettano anche nel valore della variabile passata dal chiamante.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2008, 11:28   #3
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
scuso l'intromissione, ma il discorso è interessante.

quindi l'operatore * andrebbe ripetutto tante volte quante sono le dimensioni del vettore?
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2008, 11:32   #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
Quote:
Originariamente inviato da SerMagnus Guarda i messaggi
scuso l'intromissione, ma il discorso è interessante.

quindi l'operatore * andrebbe ripetutto tante volte quante sono le dimensioni del vettore?
Come dicevo, in quei casi non è un operatore, è solo uno specificatore di tipo della variabile.

Comunque sì, ovviamente cambia anche l'allocazione, per un vettore tridimensionale ci vorranno due for annidati per allocare le varie matrici.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2008, 21:04   #5
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 681
Grazie infinite cionci
Avevo il sospetto che fossero dei puntatori di puntatori...
Però mi sfugge il significato e la logica:
Ad esempio un puntatore punta l'indirizzo di una variabile,
Un puntatore di puntatori a cosa punta?

Grazie ancora!
__________________
Codice:
Ho Concluso felicemente con : Horizont, Abadir_82, nicola1985, Spytek, Remoz, cristianobon70, salvi06, leleweb, xleaaz, Gekker, ilvise, alexxx19, CèTutto, pidegioan, paquito83, MaRcOmA1986
felix085 è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2008, 00:20   #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
Guardalo come un gioco di scatole cinesi.
Un puntatore contiene l'indirizzo di una variabile, un puntatore a puntatore con tiene l'indirizzo di un puntatore.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 17:30   #7
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 681
Dopo un pò di "studio" ho appreso come usare i puntatori di puntatori.
In realtà, all'inizio, non riuscivo a capire a cosa servissero e quali vantaggi portassero.... poi in realtà ho scoperta che sono proprio una bella cosa e in molte casi, ad esempio, possono soppiantare le catene.

Grazie ancora!
__________________
Codice:
Ho Concluso felicemente con : Horizont, Abadir_82, nicola1985, Spytek, Remoz, cristianobon70, salvi06, leleweb, xleaaz, Gekker, ilvise, alexxx19, CèTutto, pidegioan, paquito83, MaRcOmA1986
felix085 è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 17:37   #8
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
Quote:
Originariamente inviato da felix085 Guarda i messaggi
possono soppiantare le catene.
Catene ??? Che sono ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 18:29   #9
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 681
Quote:
Originariamente inviato da cionci Guarda i messaggi
Catene ??? Che sono ?
Io le chiamo/mi hanno insegnato cosi , ma in realtà sono comunemente dette "Liste".
Chiamate anche cosi perché con le liste con doppi puntatori, uno l'elemento successivo e uno precedente, formano una "catena"
__________________
Codice:
Ho Concluso felicemente con : Horizont, Abadir_82, nicola1985, Spytek, Remoz, cristianobon70, salvi06, leleweb, xleaaz, Gekker, ilvise, alexxx19, CèTutto, pidegioan, paquito83, MaRcOmA1986
felix085 è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2008, 18:33   #10
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
Mai sentito chiamarle così, sempre double linked list.

Certo, per quelle sono utilissimi i puntatori a puntatori. Servono per cambiare il valore del puntatore all'interno di una funzione e far riflettere il cambiamento sul chiamante
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Nella capsula Orion di Artemis II ci sar...
L'immagine del mese del telescopio spazi...
Heatspreader originale al posto del wate...
Ubisoft ha definitivamente archiviato Wa...
Motivair by Schneider Electric presenta ...
Un dissipatore che non richiede energia ...
Con Maia 200 Microsoft alza l'asticella ...
La Cina impone requisiti anche per lo st...
Apple lancia AirTag aggiornato: range es...
Microsoft risolve i blocchi di Outlook: ...
OpenAI verso il disastro finanziario? L’...
X nei guai: l'UE indaga sui pericoli del...
Caso Corona-Signorini: il giudice blocca...
470 petaFLOPS con una frequenza di 56 GH...
WhatsApp: abbonamento per rimuovere la 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: 03:03.


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