Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Puntatori a tipo: fantascienza?
Forum - C/C++ - Puntatori a tipo: fantascienza?

Avatar
giulioscatto (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/08/2009

Segnala al moderatore
Postato alle 14:46
Lunedì, 08/08/2011
Buon pomeriggio a tutti.

Durante un lungo viaggio mentale sono arrivato a chiedermi se fosse possibile (non in C, in generale) avere un puntatore a un tipo (es. puntatore al tipo int).
Cosa dite? (a parte di bere meno di domenica :blush: :rotfl:  ;)

Grazie a thousand!
Giulio

______________________________________________
edit:
nel senso di un puntatore non al valore di tipo xxx ma al tipo xxx stesso.

Ultima modifica effettuata da giulioscatto il 08/08/2011 alle 15:21
PM Quote
Avatar
comina8 (Normal User)
Pro


Messaggi: 86
Iscritto: 18/06/2011

Segnala al moderatore
Postato alle 14:57
Lunedì, 08/08/2011
Penso di non aver capito la tua domanda :-|

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 14:57
Lunedì, 08/08/2011
Un tipo è solo una convenzione logica, non esiste "materialmente" quindi non puoi conoscere il suo indirizzo (puntatore).

Con le classi è un pelo diverso, perchè anche se sono dei tipi, hanno anche dei metodi (codice) il quale ha una posizione fisica ben precisa in memoria e quindi puoi puntare ai suoi metodi.

Puntare ad un metodo di una classe, comunque, non equivale ad avere il puntatore "alla classe" ma soltanto al codice delle sue funzioni, quindi sono speciali puntatori a funzione.

PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 15:10
Lunedì, 08/08/2011
Intendi una cosa del genere : int* puntatore; ?
Se intendi questo allora certo che è possibile. Un puntatore non è altro che il riferimento ad un'area di memoria in cui risiede un valore, questo valore è determinato dal tipo ( int, char, float, double etc... ).

Ultima modifica effettuata da Nullable il 08/08/2011 alle 15:10
PM Quote
Avatar
giulioscatto (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/08/2009

Segnala al moderatore
Postato alle 15:24
Lunedì, 08/08/2011
Testo quotato

Postato originariamente da TheKaneB:

Un tipo è solo una convenzione logica, non esiste "materialmente" quindi non puoi conoscere il suo indirizzo (puntatore).




Ok, è chiaro. Grazie!

PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 15:32
Lunedì, 08/08/2011
Testo quotato

Postato originariamente da giulioscatto:
______________________________________________
edit:
nel senso di un puntatore non al valore di tipo xxx ma al tipo xxx stesso.



Ah, io avevo capito che a te interessasse sapere se si può avere un puntatore di un determinato tipo, invece a te interessa sapere se è possibile ricavare il tipo conoscendo il puntatore. TheKaneB è stato l'unico che ci ha azzeccato lol

PM Quote
Avatar
giulioscatto (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/08/2009

Segnala al moderatore
Postato alle 15:45
Lunedì, 08/08/2011
Testo quotato

Postato originariamente da Nullable:

Testo quotato

Postato originariamente da giulioscatto:
______________________________________________
edit:
nel senso di un puntatore non al valore di tipo xxx ma al tipo xxx stesso.



Ah, io avevo capito che a te interessasse sapere se si può avere un puntatore di un determinato tipo, invece a te interessa sapere se è possibile ricavare il tipo conoscendo il puntatore. TheKaneB è stato l'unico che ci ha azzeccato lol



Credo che fraintendi ancora :) non si tratta di ricavare il tipo dal pointer ma di avere un pointer al tipo (esempio impossible: type(int)* trollface; poi trollface può essere usato come ptr a tipo - so che esiste il typedef e il suo utilizzo ma puntavo :rotfl: a qualcosa di più astratto (doppio :rotfl: poiché volevo fare una roba del genere in C).

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:06
Martedì, 09/08/2011
Non è possibile e non ha senso in C, ma in linguaggi riflessivi si può avere un riferimento ad un tipo. In C#, ad esempio, per ogni tipo esposto a runtime esiste un oggetto Type che lo rappresenta.

PM Quote