Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
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.
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: 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, 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: 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 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: 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, 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: 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, 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


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
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...
Rocket Lab prosegue l'assemblaggio del n...
Il Wet Dress Rehearsal della missione Ar...
31,4 Tbps: Aisuru sfonda il suo stesso r...
Giocattoli AI, una falla espone oltre 50...
OPPO Reno15 in viaggio con Gaia Gozzi: i...
Nuove revisioni per Abarth 600e: arrivan...
Intelligenza artificiale, re-training e ...
LG presenta a ISE 2026 la nuova serie di...
Alienware: disponibile in Italia il nuov...
Arrivano le bodycam sui treni di Ferrovi...
Nike taglia 775 posti negli USA: l'autom...
Crimson Desert si mostra in un nuovo gam...
Addio transistor? Questo dispositivo usa...
Jensen Huang: le fabbriche negli Stati U...
Sam Altman ammette l'errore: GPT-5.2 &eg...
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: 21:09.


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