我試圖通過輸入一些文件夾路徑來提取文件名的程序。指針和字符的分段錯誤
結果是好的,但問題是在結果的結尾,有一些分段錯誤,我無法弄清楚。
這是我在寫的。
#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;
}
而且,結果就像
enter the path : /Users/gui/Desktop/extract/extract
.
..
main
main.c
Segmentation fault: 11
對不起,問像這樣很簡單的問題,我極力想弄清楚,但我不能。
感謝您閱讀本問題。 最好的關注。
在調試器下運行它,它會告訴你哪一行失敗 – pm100
folderpath只分配空間的單個字符,並且您試圖將整個字符串讀入它。將定義更改爲'char folderpath [100];'或者具有足夠空間的東西。然後擺脫scanf中的'&'。 – bruceg
謝謝大家!我真的沒想到會有這麼多人幫助我。我會承諾我會幫助有編程問題的人!謝謝 !! –