如何解决获取另一个指针指向的指针中的值?
我有一个存储线程结构的队列
typedef struct __threaddesc
{
int threadid;
char *threadstack;
void *threadfunc;
ucontext_t threadcontext;
} threaddesc;
函数create_node(void *data)
返回定义如下的队列条目结构:
struct queue_entry {
void *data;
STAILQ_ENTRY(queue_entry) entries;
};
当我致电*node = create_node(&threaddesc_pointer)
时,如何访问threaddesc
的成员?
我尝试了以下操作,但不起作用:
printf("%d\n",node->data->threadid)
我收到此错误:请求成员“ threadid”使用的不是结构体或联合体
解决方法
data
的类型为void *
,您需要将其强制转换为正确的指针类型(假设它引用了该类型的有效对象)。
printf("%d\n",node->data->threadid);
---->
printf("%d\n",((threaddesc *)(node->data))->threadid);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。