我有以下结构
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`
答案 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
指针以指向有效的内存位置,然后再解除引用。