use uthash safely in day 5
[advent21.git] / 05a.c
diff --git a/05a.c b/05a.c
index cdebe38..8a2e9f1 100644 (file)
--- a/05a.c
+++ b/05a.c
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <stdint.h>
 #include <uthash.h>
 
 #define SWAP(x, y) { x ^= y; y ^= x; x ^= y; }
@@ -9,13 +10,16 @@ struct entry { struct point key; int i; UT_hash_handle hh; };
 void mark_point(int x, int y, struct entry **entries, int *r)
 {
        struct entry *p;
-       struct point s = { .x=x, .y=y };
+       struct point s;
+       memset(&s, 0, sizeof s);
+       s.x = x;
+       s.y = y;
        HASH_FIND(hh, *entries, &s, sizeof(struct point), p);
        if (p) {
                if (p->i++ == 1)
                        *r = *r+1;
        } else {
-               p = malloc(sizeof(struct entry));
+               p = calloc(1, sizeof(struct entry));
                p->key = s;
                p->i = 1;
                HASH_ADD(hh, *entries, key, sizeof(struct point), p);