1
最後の追加呼び出しが機能しないのはなぜですか?私はポストが主にコードであると不平を言っているので、ここでいくつかのゴミを追加しなければならない。リンクされたリストの追加が最後に実行されない
typedef struct node {
int val;
struct node * next;
} node_t;
void append_node(node_t * head, int val) {
node_t * current = head;
while(current->next != NULL) {
current = current->next;
}
current->next = malloc(sizeof(node_t));
if(current->next == NULL)
printf("err");
current = current->next;
current->val = val;
current->next = NULL; //malloc(sizeof(node_t));
}
void print_list(node_t * head) {
node_t * current = head;
while(current->next != NULL) {
printf("%d ", current->val);
current = current->next;
}
printf("\n");
}
int main() {
node_t * list = malloc(sizeof(node_t));
list->val = 1;
list->next = NULL;
append_node(list,12);
append_node(list,14);
append_node(list,17);
print_list(list);
return 0;
}
出力:
1 12 14
印刷機能が表示されますか? –
(最後のノードを何らかの形で印刷できないため) –
@PaulStelian合意... add関数のロジックが正しいように見えます。 –