如何访问另一个结构中定义的结构变量?

时间:2012-10-15 21:41:01

标签: c

我有以下结构

typedef struct List_Node {
     struct File_Descriptor *data;
     char *key;
    struct List_Node *next;
}List_Node;

现在我在这两个结构中插入了一些值,并希望访问File_descriptor类型的数据。怎么做?

我试过这个

struct List_Node *ln1;
printf("%s", ln1.File_Descriptor->data);

但是它给出了错误

error: request for member ‘error: File_Descriptor’ in something not a structure or union` 

2 个答案:

答案 0 :(得分:2)

你只想:

struct List_Node *ln1;
printf("%s", ln1->data);

struct File_Descriptor是类型。 data是结构成员名称。

尽管printf格式看起来完全错误。不确定你在那里做什么。 %s是字符串,data当然看起来不像字符串。

答案 1 :(得分:1)

我相信您将类型名称与变量名称混淆。要访问data结构的List_Node成员,请使用以下命令:

struct List_Node *ln1; // initialize this
printf("%s", ln1->data);

不要忘记首先必须初始化ln1指针以指向有效的内存位置,然后再解除引用。