Strings sammeln
-
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
-
du legst nur zeiger an, nirgends den speicherplatz, auf den diese zeigen sollen. also zeigen die irgendwo in der gegend rum...
-
Hallo!
Du must für jeden gchar zeiger im ergebnis-array auch entsprechend Speicher in der länge des strings reservieren bevor du ihn dort hin kopierst.
ergebnis[count] = (gchar *)malloc((strlen(dirpath)+1)*sizof(gchar)); if (ergebnis[count] == NULL) return; strcpy(ergebnis[count],dirpath); count++;
gruß
Michael
-
Hallo,
mus du das nicht echer so anledern:. . . gchar ergebnis[20][1000]; . . .
oder?
MfG TaccoGo