Ich versuche, das Programm, das Dateinamen extrahieren, indem Sie einige Ordnerpfad eingeben.Segmentierung Fehler von Zeiger und char
Das Ergebnis ist gut, aber das Problem ist am Ende des Ergebnisses, es gibt einige Segmentierung Fehler, die ich nicht herausfinden kann.
Hier ist, was ich schrieb.
#include <stdio.h>
#include <dirent.h>
int main() {
char folderpath;
printf("enter the path : \n");
scanf("%s",&folderpath);
DIR *d;
struct dirent *dir;
d = opendir(&folderpath);
if (d)
{
while((dir= readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
};
return 0;
}
Und Ergebnis ist wie
enter the path : /Users/gui/Desktop/extract/extract
.
..
main
main.c
Segmentation fault: 11
Es tut uns wie diese wirklich einfache Frage, die ich sehr versucht, herauszufinden, aber ich kann nicht.
Vielen Dank für das Lesen dieser Frage. Bester Respekt.
führen Sie es unter einem Debugger, wird es Ihnen zeigen, welche Zeile schlägt fehl – pm100
Ordnerpfad reserviert nur ein einzelnes Zeichen des Raumes, und Sie versuchen, die ganze Zeichenfolge hinein zu lesen. Ändern Sie die Definition in 'char folderpath [100];' oder etwas mit ausreichend Platz. Dann loswerden der '&' in der scanf. – bruceg
danke euch allen !! Ich habe wirklich nicht erwartet, dass so viele Leute mir helfen würden. Ich verspreche, ich werde jemandem helfen, der ein Problem der Programmierung hatte !! Danke !! –