首页 > 解决方案 > 关于链表结构的语法问题

问题描述

我对链表中结构的语法有疑问:

我有这个链表结构:

typedef struct      s_list
{
    void            *content;
    size_t          content_size;
    struct s_list   *next;
} t_list;

我想将 void *content 指向这个结构:

typedef struct      s_minos
{
    char            **minos;
}                   t_minos;

但是当我尝试像这样访问我的 char **minos 时:

printf("%s\n", head->content->singleminos->minos[i]);

我宣布:s_minos *singleminos; 并分配:head->content = singleminos;

它不起作用。

我应该如何正确访问我的数据?

标签: cstructlinked-list

解决方案


改变这个

printf("%s\n", head->content->singleminos->minos[i]);

printf("%s\n", ((t_minos *)(head->content))->minos[i]);

或者

t_minos * temp = head->content;
printf("%s\n", temp->minos[i]);

您需要void pointer在取消引用之前将其转换为原始类型。


推荐阅读