これは一種の非常に基本的な質問です。voidタイプのポインタのメモリに何が含まれるかを知りたかっただけです。
どんな助けでも本当に感謝しています。ありがとう!
ポインタは、メモリ内のアドレスを提供するvoid
単なる値です。ポインタが実際に指しているものは、void
詳細情報なしでは判別できません。
ポインタが占めるメモリの内容はvoid
、32ビットアーキテクチャでは32ビット値、64ビットアーキテクチャでは64ビット値になります(以下同様)。
この値の解釈は、基盤となるアーキテクチャと、それがメモリアドレス指定を実装する方法に大きく依存します。
ポインタはメモリアドレスであるため、voidポインタでもオブジェクトのポインタでも同じになります。
void
値のないタイプです。
したがって、あなたが持っている場合void *foo
、Cはあなたが読むことを許可しません、*foo
ましてやそれに何らかの値を割り当てることはできません。
したがって、あなたの質問に対する答えは次のとおりですvoid
。ポインタが指しているものの値を見つけることはできません。voidポインターを他のタイプにキャストする必要があり、新しいポインターが指すアドレスの値は、そのタイプに従って解釈されます。
実際にはポインタでもあるので、サイズは通常のポインタと同じである必要があります。