GSList
GSList is GLib's implementation of a generic singly linked list. It provides a simple, dynamically allocated chain of nodes where each node holds a pointer to data (gpointer) and a pointer to the next node. Because the data field is a void pointer, GSList can store pointers to any type, making it a flexible container for GTK and GLib-based projects.
Structure and usage: A GSList is a singly linked list, so insertion and removal at the head
Memory management: The list nodes themselves are allocated and freed by the GSList APIs. By default, freeing
Relation to other types: GSList is the singly linked list variant in GLib. Its counterpart is GList,
See also: GLib documentation for GSList and the related GList structure.