- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的任务是为 .iso 文件系统中的文件实现 ls 函数。我需要使用 fread 但它是段错误。我知道该文件存在并且我知道其中有数据。我有调用 fread 的格式,我设置如下
static void ls(File *file, int32_t root_dir_size)
{
void* sector;
int result;
result = fread(sector, 1, 1, file);
}
为什么会出现这个段错误?我是 C 的新手,我来自 C++,所以不确定我在这里遗漏了什么。
最佳答案
fread
需要内存来放置它正在读取的数据。该内存由第一个参数指向,在您的例子中是 sector
。但是,您还没有初始化 sector
。您将需要分配一些内存,在本例中只是一个字节,并让 sector
指向它。例如:
void *sector = malloc(1);
一如既往,不要忘记在使用完内存后释放内存。
关于c - 为什么害怕段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274240/
我写了一段代码只是为了了解 fread 的工作原理,但我不明白这是怎么可能的。这是我的代码: #include #include void main(){ char spool[5] =
我正在使用 fread 读取文件的第一个字节: fread(&example_struct, sizeof(example_struct), 1, fp_input); 在 linux 和 solar
如何代替 char text[10000]; 做 char text[fp_len]; 我也收到这个警告: warning: value computed is not used FILE *fp;
我有一个查询集,我需要懒惰地 pickle ,我遇到了一些严重的问题。 cPickle.dumps(queryset.query) 抛出以下错误: Can't pickle : it's not th
我是一名优秀的程序员,十分优秀!