gpt4 book ai didi

c - 链表-循环

转载 作者:行者123 更新时间:2023-11-30 21:38:21 25 4
gpt4 key购买 nike

#include<stdio.h>
typedef struct hwnd *HWND;
struct hwnd{
int id;
HWND siblings;
HWND next;
HWND prev;
};
int main()
{
HWND siblings = malloc(sizeof(struct hwnd));
HWND handle = malloc(sizeof(struct hwnd));
for(siblings=handle->siblings;siblings&&siblings!=siblings->next;siblings=handle->siblings)
{
handle->siblings = siblings->next;
handle->siblings->prev = siblings->prev;
siblings->prev->next = handle->siblings;
}
return 0;
}

此代码的 for 循环条件会引发深度检查错误,如 REDUNDANT_CONDITION_AFTER_FIRST_ITERATION。当条件从第二次迭代开始始终为真时,就会出现此错误。

请帮我解决这个问题。

编辑:

抱歉,我的问题不正确。handle->siblings、handle->next 和handle->prev 在程序中的某个位置分配了数字。我无法理解为什么他们需要进行像 sibling && sibling != sibling ->下一个 这样的检查。我从中所能理解的是,他们正在通过执行siblings&&siblings来检查siblings -> next是否包含一些地址,并且siblings不等于NULL。如果我错了,请纠正我。正如马诺斯所说,优先级是 != 然后是 &&,因此即使我们错过了括号,它也必须正确执行,没有任何深度检查错误。

请帮我找出问题的根本原因。

最佳答案

也许这个siblings&&siblings不是你想要的......我也试图遵循你的代码,但我有点困惑。你真正想做什么?

关于c - 链表-循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212978/

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