我收到的不兼容类型错误如下:
error: incompatible types when assigning to type ‘struct cache *’ from type ‘cache’
我有以下结构。
typedef struct __region {
int size;
void *addr;
struct __region *next;
} region;
typedef struct {
int size;
int remainingSpace;
void *addr;
char *bitmap;
struct cache *parent;
struct slab *next;
} slab;
typedef struct {
int alloc_unit;
int slab_counter;
slab *S;
} cache;
typedef struct {
region *R;
cache C[8];
} memory;
我运行的接收错误的代码是:
memory M;
M.C[0].S->parent = M.C[0];
答案 0 :(得分:5)
parent
是指向struct cache
的指针,而M.C[0]
是struct cache
。您可以使用&
运算符来获取指向M.C[0]
的指针,如下所示:
M.C[0].S->parent = &(M.C[0]);
答案 1 :(得分:3)