我的链接列表:
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个字节。
我哪里出错了?
感谢。
答案 0 :(得分:0)
正如托马斯巴丹已经说过的那样 (节点*)((char *)(tmp + 2));应该做你解释的,因为tmp + 2以tmp数据的大小向前移动两步(sizeof(Node))。但是你用指针尝试的东西似乎很模糊。