返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #92999同步于 2016/8/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
struct中的void*型成员一般是干什么用的
mengliluohua
2016/8/9镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 Vampire 的大作中提到: 】
: 得看这个变量是干嘛的,跟类型无关吧
: 很常见的一种是指向一个自定义的数据,然后在某些回调函数中使用。
struct dyn_array {
int allocated;
int length;
void *array;
}
【 在 nuanyangyang 的大作中提到: 】
: 看具体情况。最好举一个例子。
struct dyn_array {
int allocated;
int length;
void *array;
}
【 在 mengliluohua 的大作中提到: 】
:
: struct dyn_array {
: int allocated;
: ...................
void*这里可以是指向“任意内存空间”的指针。也就是说:它是一个指针,但指向什么东西,不知道。
这个struct叫dyn_array,所以很好理解:这个指针指向一块动态分配的内存空间。allocated应该是个标志,表示是否已经分配了;length是长度;而这个array就指向分配的存储空间。但具体array里存什么样的数据,这个dyn_array结构就不管了,靠使用的地方自己去把握。
我感觉length指元素的个数,allocated指分配了多少个字节。
比如array指向10个int,length=10,allocated=40
至于判断是否已经已经分配了,判断array是不是NULL就行了。
【 在 nuanyangyang 的大作中提到: 】
:
: void*这里可以是指向“任意内存空间”的指针。也就是说:它是一个指针,但指向什么东西,不知道。
: 这个struct叫dyn_array,所以很好理解:这个指针指向一块动态分配的内存空间。allocated应该是个标志,表示是否已经分配了;length是长度;而这个array就指向分配的存储空间。但具体array里存什么样的数据,这个dyn_array结构就不管了,靠使用的地方自己去把握。