2012-05-11 62 views
3

这是一个非常基本的问题。我只是想知道一个void类型指针的内存是什么。虚空指针的内存

任何帮助真的appriciated。谢谢!

回答

7

一个void指针只是它在内存中提供了一个地址的值。没有进一步的信息就无法确定void指针实际指向的内容。

至于什么是在由void指针所占用的存储器,这将是在32位体系结构和在64位体系结构64位值的32位值(等)

解读这个值非常依赖于底层架构以及它如何实现内存寻址。

+0

好点@SteveJessop,我已经更新了相应的答案。 – Nick

+0

“void指针指向的实际内容”根本无法确定*,因为“void”没有任何值。然而,为了确定这个特定存储器地址的内容,可以将一个'void'指针指向'unsigned char'。请注意,拥有内存地址的内容并不意味着有一个值。 – Philip

+0

好吧,如果你知道它是一个'struct',那么你知道指向的内存是一个'struct'。因此我为什么说'没有进一步的信息'。随着进一步的信息,完全有可能知道指出什么! – Nick

0

一个指针是一个内存地址,所以这将是它是否是一个空指针或对象的指针一样...

0

void是一个没有值的类型。

因此,如果您有void *foo,C将不允许您阅读*foo,更不用说为其分配一些值。

因此,您的问题的答案是:您无法找到void指针指向的值的值。您必须将void指针转换为其他类型,并且新指针指向的地址处的值将根据其类型进行解释。

0

其实它也是一个指针,所以它的大小应该等于普通指针。