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 포인터의 배열에 파일 이름의 주소를 저장하려고합니다.배열의 포인터 오류
포인터에 약간 녹슬었고 포인터 리뷰의 일부 페이지를 읽었지만 내가 뭘 잘못하고 있는지 확실하지 않습니다. "경고 : 할당은 포인터가 캐스트없이 포인터에서 발생합니다."라고 말합니다. struct 때문에 구조체가 막 혔을 까?
무엇이'dirent','DT_DIR' 및'd_name'입니까? –
OT : ['readdir()'] (http://linux.die.net/man/3/readdir)는 각각을 덮어 쓸 수 있습니다. 파일에서 파일로 이동할 때 DIR 구조의 파일 이름. 당신은 그 기억을 "소유하지"않습니다. 이름을 유지하려면 이름을 복사해야합니다 (예 :'malloc()'또는 고정 버퍼 솔루션). "man 3 readdir"에서 : * "동일한 디렉토리 스트림에 대한 readdir() 호출 이후에 readdir()에 의해 반환 된 데이터를 덮어 쓸 수 있습니다." " – WhozCraig
@ ivaylo ia의 부분은을 포함합니다. DT_DIR은 디렉토리 dname은 문자 배열의 이름이고 dirent는 libary의 구조체입니다 –