2017-11-18 20 views
0

どのような型(int、double、floatなど)が現在voidポインタを保持しているかはどのように知ることができますか? と仮定します。どのような型(int、double、floatなど)が現在voidポインタを保持しているかはどのように知ることができますか?

void * p;

int x = 10;

p =&x;

printf( "%s"、type_of_void_pointer(p));

double d = 1.5;

p =&d;

printf( "%s"、type_of_void_pointer(p));

最初のprintfは "int"を出力し、2番目の文字は "double"を出力するはずです type_of_voidポインタ関数を書く方法はありますか?

答えて

1

とにかく内容からtypeを知ることはできません。 void*から、これを知ることはできません。それはすべてのアドレスです。内容を調べても、その種類を知ることは不可能です。

あなたが知っているのはすべてアドレスです。それだけです。あなたはそれを異なるタイプにキャストし、それを別の方法で解釈することもできます。

関連する問題