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 に答える