Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-11-2008, 19:40   #1
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 682
[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, 09: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, 10: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, 10: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, 20:04   #5
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 682
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 16-11-2008, 23: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, 16:30   #7
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 682
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, 16: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, 17:29   #9
felix085
Senior Member
 
L'Avatar di felix085
 
Iscritto dal: Jun 2006
Messaggi: 682
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, 17: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


ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
WINDTRE, le offerte di fine luglio: 5G F...
Due scrivanie angolari gaming a prezzi b...
Telecamere e intelligenza artificiale su...
L'ASUS Zenbook di cui tutti parlano torn...
Helios, la piattaforma di Schneider Elec...
Multiverse Computing raccoglie 500 milio...
Videogiochi, social e azzardo: un giovan...
Tre astronauti rientrano dalla ISS: la S...
Kimi K3 ha trovato 19 zero-day in Redis ...
Aggiungere un acceleratore IA per data c...
Debian valuta lo stop totale ai contribu...
Huawei sfida il ban USA: al via la produ...
QNAP lancia i nuovi NAS TS-262A e TS-462...
E4 Computer Engineering e EuroHPC JU uni...
World di Sam Altman raccoglie 52,5 milio...
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: 20:24.


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