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只是庫中的一個結構 –