我试图通过输入一些文件夹路径来提取文件名的程序。指针和字符的分段错误
结果是好的,但问题是在结果的结尾,有一些分段错误,我无法弄清楚。
这是我在写的。
#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
谢谢大家!我真的没想到会有这么多人帮助我。我会承诺我会帮助有编程问题的人!谢谢 !! –