repositories
/
advent21.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
day 14 part twoq
[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 <stdio.h>
+#include <stdint.h>
#include <uthash.h>
#define SWAP(x, y) { x ^= y; y ^= x; x ^= y; }
#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;
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 {
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);
p->key = s;
p->i = 1;
HASH_ADD(hh, *entries, key, sizeof(struct point), p);