指向结构体的Void *指针
Void * pointer to a structure
我正在实现超时。所以我声明了一个超时结构
typedef struct{
unsigned long * Task;
unsigned long Timeout;
unsigned long Offset;
DATA * Next;
DATA * Previous;
} TIMEOUT;
初始化为:
TIMEOUT Timout = {NULL ,30,0,NULL,NULL,NULL};
和i声明了另一个结构体DATA Contents;
:
typedef struct{
char CallBack;
void * Data;
}DATA;
然而,当我做Contents.Data = Timout;
时,它给了我以下错误:
CA850 error E2524: illegal type combination for '=' (void *, __faked63)
请帮忙:)
你需要一个指针。表达式Contents.Data = Timeout;
试图将TIMEOUT
类型的值赋给void*
类型的变量。使用&Timeout
获取指针:
Contents.Data = &Timeout;
不能将结构体本身赋值给void*,只能赋值给它的地址,所以使用
Contents.Data = &Timeout;
相关文章:
- 引用一个已擦除类型(void*)的指针
- 如何将指针从一个void函数传递到另一个C++
- 指针没有更新它在void函数内部指向的值
- 错误:在为指针赋值时,void值没有被忽略
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- 如何在 C++ 中将 void 函数传递给 void 指针
- 将通用引用强制转换为可调用的 void 指针,反之亦然
- C++为 void 指针分配一个字符串
- 为什么在将 void 指针转换为整数指针时出现分段错误
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 调用向量的函数,给定向量的指针作为 void *
- 取消引用 void 指针以将值分配给结构
- 为什么新表达式可以正确生成指针类型,即使它应该返回 void*?
- C 与 C++,处理 void** 指针
- reinterpret_cast指向 void(*&)() 的成员函数指针
- 使用 void 指针:void **ptr.. 如何修改共享内存的值?
- 我可以将函数指针 void* 强制转换为 std::function 吗?
- void*不是一个指向对象类型的指针 - void **的铸造错误
- 如何使用空指针(void*)
- 指针(void指针)和函数有一点混淆