c 中结构体的 void* 成员意味着什么?

tms*_*ont 3 c struct void-pointers

我不明白mystery下面的成员是什么类型的财产:

typedef struct _myobject
    {
        long number;
        void *mystery;
    } t_myobject;
Run Code Online (Sandbox Code Playgroud)

这个会员是什么样的会员void?这占用了多少内存?我可以在哪里获得有关该功能的更多信息(例如,为什么要使用会员void?)

编辑--更新标题说无效*

bar*_*nos 5

变量void*是指向内存中地址的“通用”指针。

该字段mystery本身消耗sizeof(void*)内存中的字节,通常为 4 或 8 个字节,具体取决于您的系统(更准确地说,取决于虚拟内存地址空间的大小)。但是,它可能指向消耗不同内存量的某个其他对象。

一些使用示例:

int var;
char arr[10];
t_myobject obj;

obj.mystery = &var;
obj.mystery = arr;
obj.mystery = malloc(100);
Run Code Online (Sandbox Code Playgroud)