C语言通用链表怎么用??
在网上看见一个建立C语言通用链表的例子:
typedef struct liststruct
{
liststruct *next;
}LIST, *pLIST;
pLIST Head = NULL;
pLIST AddToList(pLIST Head, void * data, size_t datasize)
{
pLIST newlist = NULL;
void *p;
// 分配节点内存和数据内存
newlist = (pLIST) malloc(datasize + sizeof(LIST));
// 为这块数据缓冲区指定一个指针
p = (void *)(newlist + 1);
// 复制数据
memcpy(p, data, datasize);
// 将这个节点指定给链表的表头
if(Head)
newlist-> next = Head;
else
newlist-> next = NULL;
Head = newlist;
return Head;
}
但不知怎么用,有哪位能举个例子说明一下吗??比如将一个整数和一个结构体添加进链表中。
[解决办法]
我在ibm的网上到过这个帖子,我试过,可以实现。不过我建议还是别用了,会把你搞糊涂的。我想一般也不会用到通用链表去处理数据。
我个人对这个的理解是:要很好的理解不同类型的数据在内存中如何存储,占了多少空间;另外要知道如何使用空指针(void *)
[解决办法]
我看这些所谓的通用链表就头痛. LZ啊, 时代不同了, 还是用用STL里的容器吧.
[解决办法]
通过连续地址实现的.
根据偏移量计算出数据的地址.
[解决办法]
自己写模板吧,别搞所谓的万能链表了。