如何检查以下结构的名称字段中是否存在 EOF?
struct dirent * ent;
ent->d_name;
即我想知道是否ent->d_name
拥有EOF。
另一方面,可以初始化变量的类型char[256]
ent->d_name[255]='\0';
但我收到以下警告:
warning: can be used 'ent' uninitialized in this function [-Wuninitialized]
您会收到未初始化的警告,因为您没有初始化ent
将指向的值。struct dirent * ent
只是一个应该指向 astruct dirent
但您尚未初始化它指向的内存的指针。为了使用ent
它malloc
:
struct dirent * ent = malloc(sizeof(*ent));
或者在堆栈上分配它并使用地址操作符获取指向它的指针:
struct dirent ent;
struct dirent * entPointer = &ent;
至于 EOF 问题:EOF
宏可用于检测流中的文件结尾,例如由fopen
. 它与字符串无关d_name[255]
。除非你的意思是终止'\0'
- ,它保证在那里。[需要引用]