从另一个struct访问struct中的元素

时间:2014-09-07 10:29:17

标签: c pointers struct

我有一个用于数据库操作的结构。它包含一个char * table_field和另一个struct(char ** struct_addr)中char指针的地址

struct {
char *table_field,
    **struct_addr;
} retr_sett[5] = {
   { .table_field = "ifconfig_ipaddr",  .struct_addr = &(ip_sett.ip_addr) },
   { .table_field = "ifconfig_netmask", .struct_addr = &(ip_sett.netmask) },
   { .table_field = "ifconfig_router",  .struct_addr = &(ip_sett.router) },
   { .table_field = "ifconfig_dns1",    .struct_addr = &(ip_sett.dns1) },
   { .table_field = "ifconfig_dns2",    .struct_addr = &(ip_sett.dns2) }
};

后来,我想访问"外部结构"如下:

*(retr_sett[0].struct_addr) = ipaddr_from_db;

但这段代码对我不起作用。我希望我可以像这样访问struct ip_sett中的char *,但在我看来,该值被写入struct retr_sett。

1 个答案:

答案 0 :(得分:-1)

抱歉,我的优秀代码有效。我刚刚有一个if-Clause评估为false,因此结构没有被填充。