Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将项附加到C中的不透明链表处理程序_C_Linked List - Fatal编程技术网

将项附加到C中的不透明链表处理程序

将项附加到C中的不透明链表处理程序,c,linked-list,C,Linked List,我正在学习C语言中的链表,我发现了一些(如果我理解得很好的话)在不知道内部结构(字段)的情况下操作链表的问题 给定指向链接列表的指针,是否可以在不知道其内部结构的情况下追加/删除链接列表中的项目 编辑(添加详细信息) 因此,问题是创建一组函数来操作链表,给定链表上的处理程序作为参数,该参数以以下方式声明: typedef struct list *handler; 例如,我创建了一个函数来创建一个链表: handler ListCreate() { handler list = (ha

我正在学习C语言中的链表,我发现了一些(如果我理解得很好的话)在不知道内部结构(字段)的情况下操作链表的问题

给定指向链接列表的指针,是否可以在不知道其内部结构的情况下追加/删除链接列表中的项目

编辑(添加详细信息)

因此,问题是创建一组函数来操作链表,给定链表上的处理程序作为参数,该参数以以下方式声明:

typedef struct list *handler;
例如,我创建了一个函数来创建一个链表:

handler ListCreate()
{
    handler list = (handler)malloc(sizeof(handler));
    if(!list)
    {
        printf("can not allocate memory \n");
        return NULL;
    }
    return list;
}
但当谈到附加时,我只是被阻止了,我认为这是不可能的,但也许我错了

这就是函数的原型:

int ListAppend(handler list, void *item)

一般来说,任何以“是否有可能做…”开头的问题都可以用“是”来回答。话虽如此,是列表是不透明的结构,还是您想要添加到列表中的数据?两者都是不透明的,数据是无效的*。现在我们来问一个难题:您的问题是什么?对于这样一个列表,您是否有一组只想使用的函数?或者你应该创建一组函数和结构来处理这个问题?你试过什么?你的尝试有什么问题?你有没有一张你想给我们看的照片?也许是时候刷新、接受SO、read以及。对于实现链表功能的人来说,没有访问列表结构内部的权限是没有意义的。你怎么会陷入那样的境地?你确定你没有误解你的任务吗?或者是否有其他函数可以操作列表?这意味着您需要定义列表结构。不透明指针返回到调用代码。它对代码的用户来说是不透明的。对于代码的实现者来说,这不是不透明的。这是一个非常标准的模式。