Initial commit

This commit is contained in:
seajee
2025-07-22 17:12:24 +02:00
commit 73387bb7a6
5 changed files with 223 additions and 0 deletions

61
test.c Normal file
View File

@@ -0,0 +1,61 @@
#include <stdio.h>
#include <stdlib.h>
#ifdef DEBUG
#define malloc(n) (printf("%s:%d:%s: malloc(%ld)\n",\
__FILE__, __LINE__, __func__, (n)), malloc((n)));
#define free(p) (printf("%s:%d:%s: free(%p)\n",\
__FILE__, __LINE__, __func__, (p)), free((p)));
#endif // DEBUG
#define ARENA_MIN_CAPACITY 400
#define ARENA_IMPLEMENTATION
#include "arena.h"
void arena_print(Arena arena)
{
int i = 0;
for (Arena_Region *cur = arena.head; cur != NULL; cur = cur->next) {
printf("Arena_Region #%d:\n", ++i);
printf(" count = %ld\n", cur->count);
printf(" capacity = %ld\n", cur->capacity);
printf(" next = %p\n", cur->next);
printf(" data = %p\n", cur->data);
}
}
int main(void)
{
Arena a = {0};
printf("------ small alloc ------\n");
arena_alloc(&a, 100);
arena_alloc(&a, 100);
arena_alloc(&a, 100);
arena_alloc(&a, 100);
arena_print(a);
printf("\n=========================================================\n\n");
printf("------ big alloc ------\n");
arena_alloc(&a, 8000);
arena_print(a);
printf("\n=========================================================\n\n");
printf("------ reset ------\n");
arena_reset(&a);
arena_print(a);
printf("\n=========================================================\n\n");
printf("------ allocs after reset ------\n");
arena_alloc(&a, 300);
arena_alloc(&a, 400);
arena_alloc(&a, 9000);
arena_print(a);
arena_free(&a);
return 0;
}