我在添加到動態鏈接列表時遇到了一些問題。基本上,我的第一個節點似乎被覆蓋。下面是代碼:添加到鏈接列表中C
struct palNode {
int number;
int pointer_index;
char* solving_array;
int solved;
struct palNode* next;
}
,這裏是我的加入方法:
struct palNode* add_palNode_from_keyboard(struct palNode* head, int num, int pos){
struct palNode* newnode = (struct palNode*) malloc(1 * sizeof(struct palNode));
struct palNode* current_node = head;
if (current_node == NULL)
{
head = newnode;
}
else
{
while ((*current_node).next != NULL)
{
current_node = (*current_node).next;
}
(*current_node).next = newnode;
}
(*newnode).number = num;
(*newnode).pointer_index = pos;
(*newnode).next = NULL;
printf("Operation completed\n");
return newnode;
}
這裏是我的問題:什麼是我做錯了什麼?有沒有更正確的做法?我見過其他類似的問題,但我還是不明白他們
[請參閱爲什麼不投的malloc'的返回值這個討論()'和'C'中的家庭。](http://stackoverflow.com/q/605845/2173917)。 –
另外,'1 * sizeof(struct palNode)'確實是不必要的。請注意,您也可以寫* sin(x)^ 2 + cos(x)^ 2 *或* exp(0)*,但僅僅因爲您可以這並不意味着您必須這樣做。 ''(* newnode).number'你不需要解除'newnode',只需'newnode-> number'就可以了。 –
'回報newnode;' - >'返回頭;',在callerside'頭= add_palNode_from_keyboard(...' – BLUEPIXY