Assuming this is from struct linux_dirent , this is actually char d_name[] :
struct linux_dirent { unsigned long d_ino; unsigned long d_off; unsigned short d_reclen; char d_name[]; }
It is called a flexible member of the array, using malloc , you can allocate more memory for the structure giving d_name size of the variable.
EDIT
Text indicating OP:
Directory entries represented by structural dirent
struct dirent { ... ino_t d_ino; char d_name[...]; ... };
When ... authors signal that the size is not fixed for the standard . Each implementation must choose a fixed size, for example, Linux chooses 256. But this is not valid code.
source share