Dynamische Größe einer Struktur

  • Themenstarter Themenstarter Dennis-20
  • Beginndatum Beginndatum
D

Dennis-20

Guten Tag an euch alle,
ich bin derzeit dabei ein Programm zu schreiben, dass aus einer Textdatei den Vor- und Nachnamen von Personen ausließt und diese Daten in eine Struktur schreiben soll. Da man nicht weiß, wie viele Personen in der Textdatei stehen soll sich die Struktur immer um einen erweitern wenn eine neue Person gefunden wurde.
Ich schreibe das Programm in C und C++ ist leider keine alternative in diesem Fall, da dies nur eine Teilfunktion von was großem ist.
Hier mein Code:
Code:
//  -----{ Einbindung von Definitionsdateien }-----
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <process.h>
#include <windows.h>
#include <signal.h>
#include <errno.h>
#include <dirent.h>
#include <time.h>

#define array 100

void app_list (int *);

struct programm
{
	char vorname[array];
	char name[array];
};

int main (int argc, char **argv)
{
	int *array_ptr;
	array_ptr = (int *) calloc (1, sizeof(int));
	app_list(array_ptr);
	free(array_ptr);
	system("pause");
	return(0);
}

void app_list (int *array_ptr)
{
	struct programm lesen;
	int i = 1;
	int j = 0;
	FILE *txt_programme_ptr;
	txt_programme_ptr = fopen("programme.txt", "r");
	/*
		Aufbau der Textdatei programme.txt:
		Horst
		Schlämmer
		Max
		Mustermann
		...
	*/
	if (txt_programme_ptr != NULL)
	{
		while(!feof(txt_programme_ptr))
		{
			if (j == 1)
			{
				i++;
				array_ptr = (int *) realloc (array_ptr, i);
			}
			fgets(lesen[i].vorname, array, txt_programme_ptr);
			fgets(lesen[i].name, array, txt_programme_ptr);
			printf("Programmename: %s\n", lesen[i].vorname);
			printf("Programmpfad: %s\n", lesen[i].name);
			j = 1;
		}
	}
	else
	{
		printf("Datei programme.txt fehlt.");
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Äh ja.^^
Hatte vergessen zu sagen, was der Fehler ist. War wohl zu sehr damit beschäftit mein Prog zu erklären.
Ja hier mein Fehler:
struct4.c:57: error: subscripted value is neither array nor pointer
struct4.c:58: error: subscripted value is neither array nor pointer
struct4.c:59: error: subscripted value is neither array nor pointer
struct4.c:60: error: subscripted value is neither array nor pointer
und ich habe keine Ahnung was ich machen muss das es funkt.
So please help me ...
 
C:
	struct programm lesen;
...
fgets(lesen[i].vorname, array, txt_programme_ptr);
Die Variable lesen ist nur eine Struktur und kein Array. Aber das sagte der Compiler ja schon. Warum greifst du dann auf die Variable lesen zu wie auf ein Array bzw. Zeiger?

Du müßtest ein Array von Programm Strukturen anlegen. Was willst du denn mit einem Integer-Array?

Warum verwendest du nicht eine Liste?

Möchtest du das aus Lernzwecken alles nochmal neu erfinden? Wenn nicht dann nimm doch eine Bibliothek die solche Datenstrukturen anbietet (wie z.B. http://libhx.sourceforge.net/). Zumal das realloc nicht gerade die tollste Methode darstellt.

Gruß
 
so ich hab meine idee das zu verwirklichen mal überlegt und es klappt wie ich es brauch.
closed!
 
Zurück