refactor: executable per day

This commit is contained in:
2023-12-02 15:26:59 +01:00
parent 9655351a96
commit e1a8ee290f
6 changed files with 32 additions and 67 deletions

View File

@@ -3,8 +3,4 @@ project(advent_of_code_2023 C)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
add_executable(advent_of_code_2023 main.c add_executable(day_01 day_1.c)
main.h
day_1.c
array_list.c
array_list.h)

View File

@@ -1,29 +0,0 @@
//
// Created by Lennart on 02/12/2023.
//
#include <stdlib.h>
#include "array_list.h"
array_list* alist_create(int capacity) {
array_list *alist = malloc(sizeof (struct array_list_struct));
alist->data = malloc(sizeof (ELEMENT_TYPE) * capacity);
alist->capacity = capacity;
alist->length = 0;
return alist;
}
void alist_add(array_list *alist, ELEMENT_TYPE entry) {
if(alist->length >= alist->capacity) {
alist->data = realloc(alist->data, alist->capacity * 2);
alist->capacity = alist->capacity * 2;
}
alist->data[alist->length++] = entry;
}
void alist_free(array_list *alist) {
free(alist->data);
free(alist);
}

View File

@@ -23,3 +23,30 @@ void alist_free(array_list *alist);
#define ADVENT_OF_CODE_2023_ARRAY_LIST_H #define ADVENT_OF_CODE_2023_ARRAY_LIST_H
#endif //ADVENT_OF_CODE_2023_ARRAY_LIST_H #endif //ADVENT_OF_CODE_2023_ARRAY_LIST_H
//#define ARRAY_LIST_IMPLEMENTATION
#ifdef ARRAY_LIST_IMPLEMENTATION
array_list* alist_create(int capacity) {
array_list *alist = malloc(sizeof (struct array_list_struct));
alist->data = malloc(sizeof (ELEMENT_TYPE) * capacity);
alist->capacity = capacity;
alist->length = 0;
return alist;
}
void alist_add(array_list *alist, ELEMENT_TYPE entry) {
if(alist->length >= alist->capacity) {
alist->data = realloc(alist->data, alist->capacity * 2);
alist->capacity = alist->capacity * 2;
}
alist->data[alist->length++] = entry;
}
void alist_free(array_list *alist) {
free(alist->data);
free(alist);
}
#endif //ARRAY_LIST_IMPLEMENTATION

View File

@@ -3,11 +3,13 @@
// //
#include <stdio.h> #include <stdio.h>
#include "main.h"
#define ARRAY_LIST_IMPLEMENTATION
#include "array_list.h"
int read_line(FILE *f); int read_line(FILE *f);
int day_1() { int main() {
FILE *f = fopen("day_1.txt", "r"); FILE *f = fopen("day_1.txt", "r");
if(f == NULL) { if(f == NULL) {
printf("Error! Missing input file!"); printf("Error! Missing input file!");

20
main.c
View File

@@ -1,20 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
int main(int argc, char **argv) {
if(argc <= 1) {
printf("Please launch with a day number argument!\n");
return -1;
}
int day = (int) strtol(argv[1], (char**) NULL, 10);
switch (day) {
case 1:
return day_1();
default:
printf("Unknown day: %i", day);
}
return 0;
}

11
main.h
View File

@@ -1,11 +0,0 @@
//
// Created by Lennart on 02/12/2023.
//
#ifndef ADVENT_OF_CODE_2023_MAIN_H
int day_1();
#define ADVENT_OF_CODE_2023_MAIN_H
#endif //ADVENT_OF_CODE_2023_MAIN_H