我在头文件中定义了这个:
typedef struct Code {
char *data;
unsigned short size;
} Code;
这两个在我的.c文件中:
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;
但每次我尝试使用时都会出错 - >我把代码[]后。这样做的正确方法是什么?
答案 0 :(得分:2)
mySet->codes[mySet->index]
不是指针, 是struct Code
。
使用mySet->codes[mySet->index].size
。
答案 1 :(得分:2)
您应该使用->
来访问指向struct
的成员。由于取消引用的数组不是指针,因此应使用.
而不是->
来访问它。
因此正确的语法是:mySet->codes[mySet->index].size = 1;
,因为codes[]
是一个数组而不是一个指针。