Habe versucht eine verkettete liste zu erstellen. An sich klappt auch alles gut nur wenn ich dann die neu eingefügte struktur anhöngen will macht er das nur im unterprogramm aber nicht im hauptprogramm. Wäre gut wenn einer ne idee hätte was ich falsch gemacht habe.
Hauptprogramm
Unterprogramm
Headerdatei
Hauptprogramm
Code:
#include "header.h"
void main()
{
struct altersliste* liste;
struct altersliste* start = 0;
FILE* datei;
datei = fopen("inhalt.txt", "r");
liste = daten_lesen(datei);
einfügen(liste, start);
printf("%s", start->name);
free(liste);
free(start);
}
Code:
#include "header.h"
struct altersliste* daten_lesen(FILE* datei)
{
struct altersliste* l1;
char name[50];
int alter;
fscanf(datei,"%s %d", name, &alter);
l1 = (struct altersliste*) malloc (sizeof(struct altersliste));
l1->name = (char *) malloc (strlen(name)+1);
strcpy (l1->name, name);
l1->alter = alter;
return l1;
}
void einfügen(struct altersliste* liste, struct altersliste* start)
{
liste->next = start;
start = liste;
return;
}
Code:
#ifndef HEADER_H
#define HEADER_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct altersliste
{
struct altersliste *next;
char *name;
int alter;
};
struct altersliste* daten_lesen(FILE* datei);
void einfügen(struct altersliste* liste, struct altersliste* start);
#endif