Я пытаюсь показать, какая папка содержит в качестве вывода. Когда я запускаю эту программу на своем жестком диске через 1-2 минуты, она падает, а также сбойная часть работает нормально. Я не знаю, как я могу это предотвратить. Может кто-нибудь мне помочь ?Отображение содержимого папки в c - Ошибка времени выполнения
#include <string.h>
#include <stdio.h>
#include <dirent.h>
void showingFiles(DIR *, char *);
int main(void) {
DIR *folder;
char path[350];
sprintf(path, ".");
folder = opendir(path);
showingFiles(folder, path);
closedir(folder);
printf("\n\nEnter a key to close this program ");
getch();
return 0;
}
void showingFiles(DIR *currentFolder, char *path){
struct dirent *nextFile;
DIR *subFolder;
char copyPath[350];
strcpy(copyPath, path);
while ((nextFile = readdir(currentFolder)) != NULL) {
sprintf(copyPath, "%s//%s", path, nextFile->d_name);
printf("%s\n", (*nextFile).d_name);
if ((strcmp(nextFile->d_name, "..")) &&
strcmp(nextFile->d_name ,".") &&
(subFolder = opendir(copyPath)) != NULL) {
deletingFiles(subFolder, copyPath);
}
}
closedir(currentFolder);
}
Ваши средства отладки могут. Мы ожидаем * конкретного * вопроса, ничего подобного «это не работает, помогите мне исправить». См. [Как спросить] (http://stackoverflow.com/help/how-to-ask), чтобы сформулировать хорошие вопросы. – Downvoter
ладно, спасибо человеку, я проверю его. Но вы думаете, какие причины почему это происходит? – Khan9797
Я решил проблему, изменив sprintf (copyPath, «% s //% s», path, nextFile-> d_name); в sprintf (copyPath, "% s \\% s", path, nextFile-> d_name); Когда я отлаживался, у меня возникла ошибка сегментации, почему я так ошибался, что я так понимаю, почему я не получил эту ошибку в начале? – Khan9797