Я начинаю заниматься разработкой, поэтому мой сэнсэй дал мне задачу заполнить, в которой мне нужно ввести пару строк в связанных списках, а после ввода печати их нужно распечатать в правильном порядке, от первого до последнего.Одиночный список C, печать
Вот что я получил:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node {
char data;
struct Node *next;
}node;
char createlist(node *pointer, char data[100]) {
while (pointer->next != NULL) {
pointer = pointer->next;
}
pointer->next = (node*) malloc(sizeof(node));
pointer = pointer-> next;
pointer->data = *data;
pointer->next = NULL;
}
int main() {
node *first, *temp;
first = (node*) malloc(sizeof(node));
temp = first;
temp->next = NULL;
printf("Enter the lines\n");
while (1) {
char data[100];
gets(data);
createlist(first, data);
if (strcmp(data, "print") == 0)
printf("%s\n", first->data);
else if (strcmp(data, "quit") == 0)
return (0);
};
}
Когда я запускаю его я получаю: Введите следующие строки: asdfasdf печать (нуль)
Любая помощь будет оценена, так как это мой первый раз используя связанные списки.
Обратите внимание, что они говорят [вы не должны отбрасывать результат 'таНос()' в C] (http://stackoverflow.com/questions/605845/do -i-монолитно-заместитель на результат из-таНоса). – MikeCAT
Вы не должны использовать 'gets()', что неизбежно rsik переполнения буфера. – MikeCAT
Вы должны сделать это в первый раз, когда вы использовали ваш отладчик. –