这是一个非常基本的问题。我只是想知道 void 类型的指针的内存中会有什么。
任何帮助都非常感谢。谢谢!
void
指针只是一个提供内存地址的值。void
如果没有进一步的信息,就无法确定指针实际指向的内容。
至于指针占用的内存是什么,在void
32 位架构上是 32 位的值,在 64 位架构上是 64 位的值(以此类推)。
这个值的解释在很大程度上取决于底层架构以及它如何实现内存寻址。
void
是没有值的类型。
因此,如果您有 a void *foo
,C 将不允许您阅读*foo
,更不用说为它分配一些值了。
因此,您的问题的答案是:您无法找出void
指针所指向的值。您必须将 void 指针转换为其他类型,并且新指针指向的地址处的值根据其类型进行解释。
指针是一个内存地址,所以无论它是一个空指针还是一个对象的指针都是一样的......
其实它也是一个指针,所以大小应该和普通指针一样。