DIR * d;
int dsize=0;
struct dirent * de;
char *dir[1024];
d=opendir(".");
while ((de = readdir(d)))
{
if((de->d_type) & DT_DIR)
{
dir[dsize]= de->d_name;
dsize++;
}
}
我试图将文件名的地址存储到一个char指针数组中。与阵列的指针错误
有点生锈的指针我回去读了一些指针评论的页面,但我是 不知道我在做什么错误..不断告诉我“警告:赋值从指针没有投射整数”。我的语法是否因为结构而关闭?
什么是'dirent','DT_DIR'和'd_name' –
OT:['readdir()'](http://linux.die.net/man/3/readdir)可以,并且会覆盖每个从文件移动到文件时,DIR结构中的文件名。你没有“拥有”那个记忆,实现就是这样。如果你想保留名字,你必须复制这些名字(即......分出'malloc()'或一个固定缓冲区解决方案)。从“man 3 readdir”开始:*“由readdir()返回的数据可能会被随后对同一目录流的readdir()调用覆盖*” – WhozCraig
@ ivaylo它的一部分包括 DT_DIR告诉它的目录或者不是,d_name是dir(char数组)的名称,dirent只是库中的一个结构 –