我們與在C. LinkedList的一個問題,當我應該算多少節點出現在列表中,我總是得到1LinkedList的添加元素
LL數:1
這是添加,計數和獲得的代碼列表最後一個元素:
void addLL(LL * head)
{
LL *newNode;
LL *tail = getLastNode(head);
newNode = malloc(sizeof(LL));
if(newNode != DEF_NULL)
{
newNode->ID=-1;
newNode->TCB=-1;
newNode->next = DEF_NULL;
if(!head) head = newNode;
else tail->next = newNode;
}
}
LL * getLastNode(LL * head)
{
LL *temp = head;
while(temp->next != DEF_NULL)
{
temp = temp->next;
}
return temp;
}
CPU_INT32U countLL(LL * head)
{
CPU_INT32U elements = 0;
LL * temp = head;
while(temp->next != DEF_NULL)
{
temp = temp->next;
elements++;
}
return elements;
}
這就是所謂的以這樣的方式
addLL(list);
temp = countLL(list);
Debug_LOG("LL count: %i", temp);
其中LL * list;是一個全局變量,temp在本地範圍內。 我希望每個人都可以看到我錯在哪裏
問候, Sjaak和格里特
你確定該列表不爲空值,則與newNode = malloc的添加僅一個元素(的sizeof(LL)); – subbul 2012-04-25 10:27:49
這裏有什麼問題?如果你添加一個元素,計數將只是一個元素...添加更多的元素來測試你的'countLL()' – 2012-04-25 10:30:15
對不起,我應該說每一秒都會在主程序中調用AddLL。 – Davey 2012-04-25 10:31:32