ciao a tutti!!
chi mi sa spiegare la differenza fra handle e puntatore??
o più semplicemente, un handle, cos'è?
ciao a tutti!!
chi mi sa spiegare la differenza fra handle e puntatore??
o più semplicemente, un handle, cos'è?
Un handle è praticamente un numero intero che il sistema utilizza (magari come indice in una tabella) per gestire un oggetto o altra struttura dati ...
P.S. Indica il linguaggio di programmazione nelle richieste, come da regolamento ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Un handle è un puntatore opaco. Sai che punta a qualcosa (anche se il "numero" che hai in mano non è necessariamente una locazione di memoria, ma magari un indice in una tabella), e non puoi manipolare questo qualcosa modificandolo direttamente, ma solo tramite le apposite funzioni fornite dalla libreria che ti fornisce l'handle. L'uso di handle invece di puntatori a strutture note consente di evitare che gli utilizzatori della libreria vadano a paciugare impunemente sul formato interno delle strutture dati della libreria stessa, e consentono inoltre a chi gestisce la libreria in questione di cambiare senza problemi le dette strutture dati senza che gli utilizzatori abbiano problemi di sorta. L'uso di handle invece di puntatori è conosciuto anche con il nome di pimpl idiom.
Amaro C++, il gusto pieno dell'undefined behavior.
mm, ho capito... non è un concetto semplicissimo
grazie della spiegazione
orco cane!!! me lo dimenti sempre su tutti i post. c++ comunqueOriginariamente inviato da oregon P.S. Indica il linguaggio di programmazione nelle richieste, come da regolamento ...![]()
In realtà è più semplice di quanto puoi pensare ...Originariamente inviato da iacoposk8
mm, ho capito... non è un concetto semplicissimo
No MP tecnici (non rispondo nemmeno!), usa il forum.
Probabilemte è così... però forse devo lavoraci ancora un pò con queste cose per assimilarle.Originariamente inviato da oregon
In realtà è più semplice di quanto puoi pensare ...
una volta mi era poco chiaro il concetto di puntatori ma alla fine l'ho capito![]()
sotto Mac Classic, gli handle erano puntatori di puntatori... era un modo per allocare dinamicamente la memoria senza frammentarla.
Quindi più o meno l'equivalente degli handle restituiti da GlobalAlloc senza GMEM_FIXED. Una delle cose che mi rende lieto di aver iniziato a programmare intorno al 2000 è di avere sempre a disposizione la memoria virtuale che risparmia queste menate.![]()
Amaro C++, il gusto pieno dell'undefined behavior.