[英]For deleting a node in a linked list if I use memmove() (in C) will it be more efficient?
我在互联网上遇到的关于删除链表中节点的每个示例,他们都使用这种方法删除第一个节点:
Algorithm to delete first node of Singly Linked List
%%Input: head of the linked list
Begin:
If (head != NULL) then
toDelete ← head
head ← head.next
unalloc (toDelete)
End if
End
在这段代码中,他们从列表中删除了第一个节点后释放了内存区域。 但是我正在使用 memove() 删除链表的第一个节点。
...
if (key == 1){
memmove(head, head->next, sizeof(node));
return;
}
...
那么,当我使用 memmove() 时,它会自动释放内存区域吗?? 我的代码效率更高吗??
在您的代码头中是一个指针,它是一个标量,因此使用memmove不会比简单的赋值更快。 在复制较大的对象时, memmove功能会很有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.