说到C编程语言,我还是个初学者。
我想读取内存中1 KB的文件块,并将其存储在内存中的HashTable中。为了处理冲突,我的HashTable中的每个存储桶都有一个双向链表。
假设我将链表的一个节点建模为具有下一个和上一个指针的结构。我应该如何存储这个1 KB的文件块?
如有任何建议或想法,欢迎光临。
发布于 2013-11-16 20:47:33
typedef struct struct_FILEBLOCK FILEBLOCK ;
struct struct_FILEBLOCK {
char *data ;
FILEBLOCK *next ;
FILEBLOCK *prev ;
} ;
那么你所有的实际数据块可以恰好是1k长,并且你的列表元素很小。
FILEBLOCK *fballoc(void)
{
FILEBLOCK *fb = malloc(sizeof(FILEBLOCK)) ;
fb->data = malloc(1024) ;
fb->next = 0 ;
fb->prev = 0 ;
return fb ;
}
然后
void fbread(int fh,FBLOCK *fb)
{
read(fh,fb->data,1024) ;
/* whateva */
}
https://stackoverflow.com/questions/20023645
复制