我的任务是在.iso文件系统中为文件实现ls函数。我需要使用fread,但它是segfaulting。我知道文件存在,我知道它有数据。我有调用fread的格式,我已将其设置如下
static void ls(File *file, int32_t root_dir_size)
{
void* sector;
int result;
result = fread(sector, 1, 1, file);
}
为什么这个段错误?我是C的新手,我来自C ++,所以不确定我在这里缺少什么。
答案 0 :(得分:1)
fread
需要记忆来记录它所阅读的数据。在您的情况sector
中,第一个参数指向该内存。但是,您尚未初始化sector
。您将需要分配一些内存,在这种情况下只需一个字节并指向sector
。例如:
void *sector = malloc(1);
与往常一样,在您完成使用后,请不要忘记释放记忆。