0

我有以下结构

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` 
4

2 回答 2

2

你只想:

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

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

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

于 2012-10-15T21:43:14.653 回答
1

我相信您将类型名称与变量名称混淆了。为了访问结构的data成员List_Node,您使用以下内容:

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

不要忘记,ln1在取消引用之前,您首先必须初始化指针以指向有效的内存位置。

于 2012-10-15T21:45:14.317 回答