66 lines
1.5 KiB
C
Executable File
66 lines
1.5 KiB
C
Executable File
/*
|
|
In this task, you should find mistakes in the given source code.
|
|
The idea is to represent multiple characters as words stored as linked lists.
|
|
The code creates five elements of the struct Character.
|
|
|
|
Each element has a member content_ (the actual character) and
|
|
a pointer to the next character in the word (next_).
|
|
|
|
The printAll-function should correctly print all the elements inside the linked list.
|
|
|
|
Unfortunately, there are some errors in the code.
|
|
The compiler finds a few of them, others are logical errors and are not detected by the compiler.
|
|
|
|
Zum Beispiel:
|
|
Resultat
|
|
hello
|
|
*/
|
|
|
|
//#include "stdio.h"
|
|
#include <stdio.h> // General libraries should always be included with <>
|
|
// including with "" searches in compile directory first
|
|
|
|
typedef struct _Character_
|
|
{
|
|
char content_;
|
|
//Character* next_;
|
|
struct _Character_ *next_;
|
|
} Character;
|
|
|
|
void printAll(Character* head)
|
|
{
|
|
//if (head = NULL)
|
|
if (head == NULL)
|
|
return;
|
|
|
|
Character* it = head;
|
|
while (it != NULL)
|
|
{
|
|
printf("%c", it->content_);
|
|
it = it->next_;
|
|
}
|
|
}
|
|
|
|
/*
|
|
If you want a recursive printAll call:
|
|
|
|
void printAll(Character *head)
|
|
{
|
|
if (head == NULL) return; // guard against empty list
|
|
putchar(head->content_); // if here, prints first -> last
|
|
printAll(head->next_);
|
|
putchar(head->content_); // if here, prints last -> first
|
|
}
|
|
*/
|
|
|
|
int main(void)
|
|
{
|
|
Character e = {'o', NULL};
|
|
Character d = {'l', &e};
|
|
Character c = {'l', &d};
|
|
Character b = {'e', &c};
|
|
Character a = {'h', &b};
|
|
|
|
printAll(&a);
|
|
}
|