将char *转换为链接列表

时间:2013-05-16 03:10:31

标签: c++ casting linked-list byte nodes

我的链接列表:

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 bytes tmp + 2 = 24个字节。

由于我正在向它投射char *,我希望它从tmp开始移动2个字节。 我哪里出错了?

感谢。

1 个答案:

答案 0 :(得分:0)

正如托马斯巴丹已经说过的那样 (节点*)((char *)(tmp + 2));应该做你解释的,因为tmp + 2以tmp数据的大小向前移动两步(sizeof(Node))。但是你用指针尝试的东西似乎很模糊。