C 我应该使用哪种类型的函数?
我有一个以wchar\t字符串作为数据的单链表。如果我想添加一个新节点并用文本填充它,我应该使用哪种类型的函数 我尝试使用我的链表类型,但我不确定这是否是一个好方法。可能是那样的吗C 我应该使用哪种类型的函数?,c,function,types,linked-list,C,Function,Types,Linked List,我有一个以wchar\t字符串作为数据的单链表。如果我想添加一个新节点并用文本填充它,我应该使用哪种类型的函数 我尝试使用我的链表类型,但我不确定这是否是一个好方法。可能是那样的吗 typedef struct smth{ wchar_t data; struct smth *next; }smth; smth* add_to_end(wchar_t *text, smth *head){ . . . } 我决定不输入完整的代码,只是尽可能少地显示我在这里所做的事情,并询问它
typedef struct smth{
wchar_t data;
struct smth *next;
}smth;
smth* add_to_end(wchar_t *text, smth *head){
.
.
.
}
我决定不输入完整的代码,只是尽可能少地显示我在这里所做的事情,并询问它应该是什么样子?这行代码:
wchar\t data代码>,只能存储一个宽字符
关于您显示的功能smth*添加到\u端(wchar\u t*文本,smth*头)
:
无需在此函数中传递指向wchar\u t
的指针,因为在节点定义中,您只希望保留一个宽字符
如果您不想使头
指针成为全局指针,那么我认为您需要在每次调用add_to_end
以及数据时传递new头
。然后,此函数将返回链接列表的更新的标题
,您可以稍后在代码中的某个位置收集该标题。返回的smth*
将成为新的头
在函数中,add_to_end
,您可能需要这样做:
// Assuming prototype as smth* add_to_end(wchar_t text, smth *head)
struct tmp* = malloc(sizeof(struct));
if(tmp == NULL)
{
printf("\nMemory allocation failed");
return NULL;
}
tmp->data = text;
tmp->next = head;
head = tmp;
return tmp;
wchar\t数据代码>它不是stringIf“我应该使用哪种类型的函数”你的意思是应该使用哪种类型的参数及其类型以及返回类型,那么这实际上取决于你的函数应该做什么以及它是如何做的。目前形式的问题只是过于宽泛和不明确。请阅读,以及。当然,不要忘记如何创建一个函数来向我们展示。如果您询问函数的返回类型,那么它可能是void、int、smth*或任何东西,具体取决于如何插入以及插入后要返回的值。如果插入成功,该值可以是true或false,也可以是链表的头指针或指向您刚才插入的最后一个节点的指针。@VidorVistrom so void可以,如果我只想在末尾添加一个新节点并用值填充它,对吗?@VidorVistrom,列表为空且head
为空指针且OP分配给函数内部的head
时除外。由于OP遗漏了太多细节,所以真的不可能给出一些明确的答案。