From: "deseeker" Newsgroups: comp.os.msdos.djgpp Subject: Array Headache! Date: Tue, 17 Nov 1998 16:10:53 +0800 Organization: Unconfigured Lines: 42 Message-ID: <72rbd0$h57@news2.jaring.my> NNTP-Posting-Host: j26.sja.jaring.my X-Newsreader: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi, I am trying to write a small program to detect the number of files in a directory and the filenames /* Quick and dirty test routine */ #define MAX_FILE 1000 void main() { int i; char fn[MAX_FILE][256]; DIR *path; struct dirent *dir; path = opendir("c:/test"); while((dir = readdir(path))) { fn[++i] = dir->d_name; } } Ok, the above works fine but when MAX_FILE is *larger*, it return err 255. Then I came to the idea of using pointer b'cos it can hold large data char *fn[256] ... ++*fn = dir->d_name; ... Somebody would propably laughing already! After a idiotic trial and error, I found out that the dir->d_name has the same address each time. So I endup getting a list of the same (last)filename in fn b'cos each *fn is the SAME. After that, I though of writing the output to a file could solve the prob(Haven't try yet) but I don't want to. Can anybody help me how to create a large array to hold each filename (IF file numbers way way larger) Thanx in advance. deseeker