PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Strings in Array



klaus_harrer
04-11-2004, 10:27
Hallo

Ich lese ein Verzeichnis aus und möchte die Ergebnis in einen Array speichern.



GDir *dir;
const gchar *homepath = g_get_current_dir();
const gchar *dirpath;
gchar *ergebnis[1000];
gint count = 0;


void filter()
{
dir = g_dir_open(homepath,0,NULL);

while((dirpath = g_dir_read_name(dir)))
{

strcpy(ergebnis[count],dirpath);
count++;

}
g_dir_close(dir);
}

Leider kommst ein Segemtations fault. Kann mir da einer weiterhelfen?

MfG
Klaus

wraith
04-11-2004, 10:55
ergebnis ist ein Array von 1000 Zeiger auf gchar, aber diese Zeiger zeigen auf irgendwas (jedenfalls nicht auf Speicher, der dir gehört).
In deiner Schleife mußt du also bevor du strcpy aufrufst erstmal mit malloc Speicher reservieren, und zwar strlen(dirpath) + 1.