gpt4 book ai didi

c 双字段访问,为什么会有 struct->field_1->field_2

转载 作者:行者123 更新时间:2023-11-30 19:41:03 26 4
gpt4 key购买 nike

这是一个简单的问题,它可能是重复的,但我能找到它,

有人可以解释一下这一行发生了什么

  BlockPrefix_t *makeFreeBlock(void *addr, size_t size) { 
BlockPrefix_t *p = addr;
void *limitAddr = addr + size;
BlockSuffix_t *s = limitAddr - align8(sizeof(BlockSuffix_t));
p->suffix = s;
s->prefix = p;
p->allocated = 0;
return p;
}

这是代码:

BlockSuffix_t *newBlock = (void *)r->suffix + requiredSize;
newBlock->prefix = r;
BlockPrefix_t *temp = (void *)newBlock + suffixSize;
temp->suffix = (void *)nextRegion->suffix;
temp->suffix->prefix = temp;

我不明白为什么要双重访问?

最佳答案

你必须这样读这一行:

(temp->suffix)->prefix = temp.

您正在将“temp->suffix”指向的数据结构的字段“prefix”的值分配给temp本身。

关于c 双字段访问,为什么会有 struct->field_1->field_2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33988086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com