Skip to content
Snippets Groups Projects
array-length.c 996 B
Newer Older
Bruce Cowan's avatar
Bruce Cowan committed
/*
 * SPDX-FileCopyrightText: 2019-2023 Bruce Cowan <bruce@bcowan.me.uk>
Bruce Cowan's avatar
Bruce Cowan committed
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
Bruce Cowan's avatar
Bruce Cowan committed
 */

Bruce Cowan's avatar
Bruce Cowan committed
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>

#include <array.h>

Bruce Cowan's avatar
Bruce Cowan committed
static void
Bruce Cowan's avatar
Bruce Cowan committed
print_element (                 void *data,
               [[maybe_unused]] void *)
Bruce Cowan's avatar
Bruce Cowan committed
{
    printf ("%" PRIdPTR " ", (intptr_t) data);
}

static void
print_details (Array *arr)
{
    size_t len = array_get_length (arr);
    size_t capacity = array_get_capacity (arr);
    printf ("Array length %zu, Array capacity %zu\n", len, capacity);
Bruce Cowan's avatar
Bruce Cowan committed

    printf ("Data is: ");
    array_foreach (arr, print_element, nullptr);
Bruce Cowan's avatar
Bruce Cowan committed
    printf ("\n");
    Array *arr = array_new (nullptr);
    print_details (arr);

    for (int i = 0; i < 10; i++)
    {
Bruce Cowan's avatar
Bruce Cowan committed
        array_add (arr, (const void *) (intptr_t) i);
        print_details (arr);
    }
    
    for (int i = 0; i < 10; i++)
    {
        array_remove_fast (arr, 0);
        print_details (arr);
    }

    return 0;
}