私はredisのコードを読んで、構造体を定義しています:
typedef struct zskiplistNode {
robj *obj;
double score;
struct zskiplistNode *backward;
struct zskiplistLevel {
struct zskiplistNode *forward;
unsigned int span;
} level[];
} zskiplistNode;
そして、次のようなノードを作成します:
zskiplistNode *zn = zmalloc(sizeof(*zn)+level*sizeof(struct zskiplistLevel));
のアドレスが の場合、zn
配列0x10000
のメモリアドレス&(zn->level[0])
が0x10000+sizeof(zskiplistNode)
struct の後ろにあるということですか?