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?)
编辑--更新标题说无效*
变量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)