0

我的链表:

struct Node{
    bool inUse;
    unsigned int size;
    Node *next;
};

总字节数 = 12,有填充。

tmp->inUse = true;
tmp->size = size;
tmp->next = (Node*)((char*)(tmp + 2));

问题出在我的tmp->next. 我试图tmp->next 指向tmp. 但它移动24 bytestmp + 2 = 24 个字节。

由于我将 char* 投射到它,我希望它从tmp. 我哪里错了?

谢谢。

4

1 回答 1

0

正如 Tomás Badan 已经说过的 (Node*)((char*)(tmp + 2)); 应该做你解释的事情,因为 tmp + 2 在 tmp 数据的大小(sizeof(Node))上向前移动了两步。但是你用指针尝试的东西似乎很模糊。

于 2013-05-16T03:22:24.070 回答