fixed test_array.c, libkeke_array.c

This commit is contained in:
2026-08-18 07:00:03 -05:00
parent 204f521225
commit b444f539af
3 changed files with 15 additions and 8 deletions
Executable
BIN
View File
Binary file not shown.
+7
View File
@@ -9,6 +9,13 @@
#include "libkeke_utils.h"
#include "libkeke_array.h"
typedef struct {
size_t type_size;
size_t len;
size_t max_len;
void *content;
} KekeArray;
#define ARRAY_GET(array, i) ((array)->content + (array)->type_size * (i))
KekeArray *keke_array_alloc(size_t initial_len, size_t type_size) {
+8 -8
View File
@@ -7,19 +7,19 @@
#define ARRAY_LEN 10
void set(void *, size_t index, struct KekeArray *array) {
void set(void *, size_t index, KekeArray *array) {
keke_array_set(array, ARRAY_LEN - index - 1, &index);
}
void output(void *i, size_t, struct KekeArray *) {
void output(void *i, size_t, KekeArray *) {
printf("%d, ", *(int *)i);
}
void sub4(void *i, size_t, struct KekeArray *) {
void sub4(void *i, size_t, KekeArray *) {
*(int *)i -= 4;
}
bool heart(void *i, size_t, struct KekeArray *) {
bool heart(void *i, size_t, KekeArray *) {
return *(int *)i < 3;
}
@@ -30,7 +30,7 @@ void add(void *vx, void *vacc) {
}
int main(void) {
struct KekeArray *array = keke_array_alloc(ARRAY_LEN, sizeof(int));
KekeArray *array = keke_array_alloc(ARRAY_LEN, sizeof(int));
puts("Expected value:\n0");
printf("%d", *(int *)keke_array_get(array, 0)); //initialized to 0
@@ -41,7 +41,7 @@ int main(void) {
keke_array_foreach(array, output);
puts("\n");
struct KekeArray *array2 = keke_array_yoink(array, 2, 4);
KekeArray *array2 = keke_array_yoink(array, 2, 4);
puts("Expected value:\n7, 6, 5, 4,");
keke_array_foreach(array2, output);
puts("\n");
@@ -67,7 +67,7 @@ int main(void) {
keke_array_foreach(array2, output);
puts("\n");
struct KekeArray *array3 = keke_array_clone(array2);
KekeArray *array3 = keke_array_clone(array2);
keke_array_plop(array2, 1, array3); //array3 is freed
puts("Expected value:\n7, 7, 6, 5, 6, 5,");
keke_array_foreach(array2, output);
@@ -115,7 +115,7 @@ int main(void) {
puts("Expected value:\nTrue, False");
printf("%s, %s\n\n", BOOL_PRETTY(h), BOOL_PRETTY(g));
struct KekeArray *array4 = keke_array_filter(array2, heart);
KekeArray *array4 = keke_array_filter(array2, heart);
puts("Expected value:\n2, 2, 1, 2,");
keke_array_foreach(array4, output);
puts("\n");