F4MP/f4mp_originalcode/thirdparty/zpl/code/apps/examples/stack.c
Jous99 37b16f1547 code upload
codigo original de f4mp y tilted para referencias
2026-01-06 18:45:00 +01:00

45 lines
1.1 KiB
C

#define ZPL_IMPLEMENTATION
#define ZPL_NANO
#include "zpl.h"
int
main(void) {
// NOTE(ZaKlaus): Create stack memory
zpl_stack_memory stack = {0};
zpl_stack_memory_init(&stack, zpl_heap_allocator(), 2);
zpl_allocator stack_alloc = zpl_stack_allocator(&stack);
// NOTE(ZaKlaus): Create array container
zpl_array(u32) arr;
zpl_array_init(arr, stack_alloc);
// NOTE(ZaKlaus): Push 5 elements
for (i32 i = 0; i < 5; ++i) {
zpl_array_append(arr, i*2);
}
// NOTE(ZaKlaus): List them
zpl_printf("Before removal:\n");
for (i32 i = 0; i < 5; ++i) {
zpl_printf("Value: %d\n", arr[i]);
}
// NOTE(ZaKlaus): Pop 2 values
zpl_array_pop(arr);
zpl_array_pop(arr);
// NOTE(ZaKlaus): List them again
zpl_printf("\nAfter removal:\n");
for (i32 i = 0; i < 3; ++i) {
zpl_printf("Value: %d\n", arr[i]);
}
// NOTE(ZaKlaus): Clear the array out
zpl_array_clear(arr);
// NOTE(ZaKlaus): Release used resources
zpl_stack_memory_free(&stack);
return 0;
}