Array mit Strings füllen/lesen
-
Hallo,
prinzipiell möchte ich ein Array mit 500 Strings anlegen. In jedem String steht ein Dateiname von unbestimmter Länge.
// global definiert typedef struct Name{ char Filename[200]; // Länge auf 200 Zeichen beschränkt }t_Name; // Funktionsaufruf struct Name namen; char *ImageFile; namen.Filename[anzahl-n] = *ImageFile;
Problem:
Es wird immer nur der erste Buchstabe des Filenames ins Array geschrieben. In *ImageFile steht korrekt der Dateiname zB "d:\messdaten\daten01".
namen.Filename wird aber zu "ddddddddd" anstatt "d:\messdaten\daten01" usw.Wie kann ich solch ein "Array of strings" am geschicktesten anlegen und darauf zugreifen?
Danke!
-
type name[zahl];
type ist der Typ der variablen
name ist der Name der variablen
und zahl ist die Anzahl der Elemnte.char filenames[100];
hier haben wir 100 einzelne chars. 1 char ist ein Buchstabe. Ergo nicht das was du willst.
Du brauchst ein Array aus char*. Denn ein String ist in C ja nichts anderes als ein Zeiger auf einen char der irgendwann mit 0 terminiert wird.
laestig dabei ist aber, dass du den speicher vermutlich selber verwalten muessen wirst. also jeden string in dem array selbst anlegen mit malloc und mit free dann wieder freigeben.
strings in C sind eklig