将一个大数组保存在几个较小的malloc中

时间:2014-05-11 20:18:09

标签: c

目前正尝试使用fuse在用户空间中实现文件系统。虽然这并不重要,但它强调了为什么我要对这个问题施加一些限制。

我试图在内存中模拟磁盘,我创建了几个"块" (作为下面的结构),由1024个字节分配。 1024个这些"块"是一个片段,我的模拟磁盘由其中几个片段组成。

现在我已经实现了我的文件系统,但我坚持认为任何文件创建的大于1024字节的单个"块"能坚持,给我带来一些问题。我想要的是拿一些东西,让我们说一个大阵列(大小超过1024字节)并使用其中两个或更多的"块"来保存它。

typedef struct block{
void *data;
} block

我目前使用memcopy()完成了保存任何内容的方法,但我无法弄清楚如何在执行此操作时拆分更大的数据集。虽然我确定有一些简单的方法。

int someArray[2*1024]
memcpy(&blockPointer->data, &someArray, sizeof(someArray));
// Too big to fit! :/

任何帮助都会受到赞赏,虽然这不是特定于代码的,因为我只是无法弄清楚如何做到这一点。

0 个答案:

没有答案