Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
segmentation fault

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
blubb
Gast





BeitragVerfasst am: 13. Jan 2005 11:49   Titel: segmentation fault

hi,

folgendes problem:
Code:

char *browser(char *that_dir)
{
   DIR *directory = opendir(that_dir);
   if(!directory)
     return 0;

   struct dirent *entry;
   int anz = 0;
   char **files = NULL;

   while((entry = readdir(directory)))
     {
        if(!strncmp(".", entry->d_name, 1))
          continue;

        realloc(files, sizeof(files)+1);
        //realloc(files[anz], strlen(entry->d_name));
        files[anz] = (char *)malloc(strlen(entry->d_name)*sizeof(char));
        strcpy(files[anz], entry->d_name);
        anz++;

     }


ich versteh nich wieso das segfaultet :/

lg

blubb
 

kanonenfutter



Anmeldungsdatum: 10.09.2004
Beiträge: 266

BeitragVerfasst am: 13. Jan 2005 16:42   Titel:

die realloc-zeile muss so aussehen:
Code:
files = (char**) realloc(files, sizeof(*files) + sizeof(char*));

dann funktionierts.
_________________
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/


Zuletzt bearbeitet von kanonenfutter am 13. Jan 2005 21:00, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

kanonenfutter



Anmeldungsdatum: 10.09.2004
Beiträge: 266

BeitragVerfasst am: 13. Jan 2005 16:57   Titel:

hmm, es funktioniert so zwar, aber ich frage mich selber, warum eigentlich.
sizeof (*files) liefert immer nur die grösse eines einzelnen/des ersten array-elements (also 4) und nicht die tatsächliche grösse des arrays.
mal nachdenken....
_________________
"Email und Internet haben gemeinsam, dass sie beide in HTML geschrieben sind" (Peter Huth, TV-Computerexperte). Zitiert nach http://www.antihuth.de/
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

P. Ointer
Gast





BeitragVerfasst am: 05. Feb 2005 21:49   Titel:

Code:
char **files = NULL;

ein Zeiger auf einen Zeiger auf ein Zeichen -- Da kann ich beim besten Willen auch nichts von array erkennen!
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy