#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。當第二次迭代中的條件始終爲真時,會發生此錯誤。鏈接列表 - 圓形
請幫我解決這個問題。
編輯:
對不起我的問題不是correct.The把手型>兄弟姐妹和把手型>接下來與程序中某個位置的數字把手型>分組進行分配。我不明白他們爲什麼需要像這樣的兄弟姐妹做一個檢查& &兄弟姐妹!=兄弟姐妹 - >下一個。我所能理解的是,他們正在檢查兄弟姐妹 - >下一步包含一些地址和兄弟姐妹,通過做兄弟姐妹& &兄弟姐妹不等於NULL。如果我錯了,請糾正我。正如manos所說的,優先級是!=然後是& &,所以它必須正確執行,沒有任何深度檢查錯誤,即使我們錯過了放置括號。
請幫我看看可能是什麼問題的根源。
由於你的例子中的循環根本不會運行('兄弟姐妹'將始終是'NULL')我很難知道你從哪裏得到錯誤。 –