PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Dynamisch Array mit File-Zuordnung. Wie am besten?



qeldroma
05-04-2004, 11:29
Ich lese ein Verzeichnis aus, welches durchaus tausende Einträge haben kann. Dann möchte ich eine "Tabelle" im Programm benutzen, in welcher ich den Filepointer und ein paar zusätzliche Eigenschaften ablege.
struct id3tag {
char ident[4];
char title[31];
char artist[31];
char album[31];
char year[5];
char comment[31];
char genre;
};

struct file_tag {
FILE *id3file;
struct id3tag tag;
};Jedoch weiß ich ja erst innerhalb der Funktion, die mein Verzeichnis ausliest, wieviele Elemente mein Array haben wird. Außerdem muß ich dann dieses Array an das Hauptprogramm übergeben.

Folgendes habe ich mir bisher überlegt:
[list=1] Eine Funktion "readDir(char *dirName)", welche die Dateien ausliest und dynamisch ein struct-array vom Typ "file_tag" erzeugt. Diese liest erst die Anzahl der Files aus, um dann dynamisch ein Array zu generieren.
Da ich ja einen einzigen "malloc" brauche, weiß ja die Anzahl insgesammt, wie groß kann denn ein malloc in kbyte max. sein? Nicht das ich den Rahmen sprenge und noch irgendeine Speicherverwaltung einbauen muß :eek:
Als Rückgabewert bietet sich wohl ein Pointer vom Typ "file_tag" an, welcher auf das erste Element zeigt(?)
Jedoch wie arbeite ich dann im Hauptprogramm mit diesem? Ich weiß ja nicht, wie lange das Array ist? Muß ich also noch irgendwie die Anzahl der Elemente im Array von der Funktion ins Hauptprogramm transferieren, damit ich beim durchlaufen des Arrays nicht über das Ende hinausschieße? Oder wie ist das Ende markiert?[/list=1]

quinte17
05-04-2004, 18:47
mach dich mal schlau zu linearen listen.. und malloc...
könnte dir helfen ;)

greetz