feat: add vector

This commit is contained in:
2025-09-07 23:24:17 +02:00
parent 16ee246956
commit ad54d35f2b
7 changed files with 231 additions and 2 deletions

View File

@@ -9,6 +9,7 @@ void test_hm1();
void test_q1();
void test_str1();
void test_str2();
void test_v1();
int main(void) {
puts("==== [Running Hashmap tests] ====");
@@ -27,5 +28,10 @@ int main(void) {
puts("OK!");
puts("");
puts("==== [Running Vector tests] ====");
test_v1();
puts("OK!");
puts("");
return 0;
}

34
test/vector/v1.c Normal file
View File

@@ -0,0 +1,34 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include "../../vector/myvector.h"
typedef struct my_elem {
char name[32];
int age;
} my_elem_s;
void test_v1() {
/* Allocate a new vector */
size_t elem_size = sizeof(my_elem_s);
mcl_vector_s *v = mcl_vector_new(10, elem_size);
assert(mcl_vector_size(v) == 0);
assert(mcl_vector_capacity(v) == 16);
/* Push an element */
my_elem_s e1 = {
.age = 21,
.name = "John",
};
mcl_vector_push(v, &e1);
assert(mcl_vector_size(v) == 1);
/* Retrieve an element (Remember to FREE) */
my_elem_s *e1_v = (my_elem_s *)mcl_vector_get(v, 0);
printf("name: %s, age: %d\n", e1_v->name, e1_v->age);
free(e1_v);
/* Deallocate the vector */
mcl_vector_free(v);
}