c - 关于链表结构的语法问题
问题描述
我对链表中结构的语法有疑问:
我有这个链表结构:
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;
它不起作用。
我应该如何正确访问我的数据?
解决方案
改变这个
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
在取消引用之前将其转换为原始类型。
推荐阅读
- php - 进行正确的分页
- angular - 如何使用@angular/cdk 创建可拖动和可编辑的列表项?
- php - 在主机中上传 Laravel
- c# - C# 实体框架 CS1941
- python - 如何根据Django中的某些字段查找重复记录
- asp.net-core-webapi - Swagger 失败并无法加载 API 定义(又一个线程)
- ruby-on-rails - 如何降低 /sidekiq/stats 命令调用的频率
- sql-server - 索引不同客户的相同数据库设计
- c# - OrderByDescending 不对列表进行排序
适当地 - python - 在同一个图上绘制两个不同的数据框