0

私はこれをヘッダーファイルで定義しています:

typedef struct Code {
   char *data;
   unsigned short size;
} Code;

そして私の.cファイルのこれら2つ:

typedef struct MemBlock {
   char data[BLOCK_SIZE];
   int bytesUsed;
   struct MemBlock *next;
} MemBlock;

typedef struct CodeSet {
   Code *codes;
   MemBlock *memBlock;
   int size;
   int index;
} CodeSet;

次のようなコードでデータを設定しようとしています。

mySet->codes[mySet->index]->size = 1;

しかし、コード[]を入力した後、->を使用しようとするたびにエラーが発生します。これを行う正しい方法は何でしょうか?

4

2 に答える 2

2

mySet->codes[mySet->index]はポインタではなくですstruct Code

を使用しmySet->codes[mySet->index].sizeます。

于 2013-01-26T22:35:28.203 に答える
2

->へのポインタ内のメンバーにアクセスするには、を使用する必要がありますstruct。逆参照された配列はポインタではないため、の.代わりにを使用してアクセスする必要があります->

したがって、正しい構文は次のようになります。は配列であり、ポインタではないためですmySet->codes[mySet->index].size = 1;codes[]

于 2013-01-26T22:39:04.023 に答える