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.