Skip to content

ListNodeAt

Description

Node at given index in list

Parameters

Name Direction Description
l in List to get node from
idx in Index to fetch node at.

Success

Node in given list at given index.

Failure

Empty node struct.

Usage example (Cross-references)

Usage examples (Cross-references)
        result      = result && begin && ListNodeData(begin) && (*(int *)ListNodeData(begin) == 10);
        result      = result && end && ListNodeData(end) && (*(int *)ListNodeData(end) == 40);
        result      = result && ListNodeData(&ListNodeAt(&list, 2)) && (*ListNodeData(&ListNodeAt(&list, 2)) == 30);
        result      = result && ListNodeData(&ListNodeFirst(&list)) && (*ListNodeData(&ListNodeFirst(&list)) == 10);
        result      = result && ListNodeData(&ListNodeLast(&list)) && (*ListNodeData(&ListNodeLast(&list)) == 40);
    
    static bool test_list_node_at_out_of_bounds_fails(void) {
        WriteFmt("Testing ListNodeAt out of bounds\n");
    
        List(int) list = ListInit(get_test_alloc());
        List(int) list = ListInit(get_test_alloc());
        ListPushBackR(&list, 10);
        (void)ListNodeAt(&list, 1);
    
        return false;
    
    static bool test_list_node_at_empty_fails(void) {
        WriteFmt("Testing ListNodeAt on empty list\n");
    
        List(int) list = ListInit(get_test_alloc());
    
        List(int) list = ListInit(get_test_alloc());
        (void)ListNodeAt(&list, 0);
    
        return false;
    /// TAGS: List, First, Node, Access
    ///
    #define ListNodeFirst(l) ListNodeAt((l), 0)
    
    ///
    /// TAGS: List, Last, Node, Access
    ///
    #define ListNodeLast(l) ListNodeAt((l), (l)->length - 1)
    
    ///
Last updated on