From c262f15ff3dd802ffafb4a1b22ed8c1ec6f72948 Mon Sep 17 00:00:00 2001 From: timoh Date: Thu, 12 Nov 2026 21:56:47 +0100 Subject: [PATCH] Speicherreservierung fuer Bildserie --- Startcode/imageInput.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Startcode/imageInput.c b/Startcode/imageInput.c index 4bf7f8d..70093d9 100644 --- a/Startcode/imageInput.c +++ b/Startcode/imageInput.c @@ -11,6 +11,7 @@ // TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen static int Header_check(FILE *file) { char puffer[BUFFER_SIZE] = {0}; + fread(puffer, sizeof (char), strlen(FILE_HEADER_STRING), file); if (!strcmp(puffer, FILE_HEADER_STRING)) { @@ -28,6 +29,30 @@ static int readDimensions(FILE *file, unsigned short werte[]) { return 0; } +static GrayScaleImageSeries *createSeries(unsigned short anzahl){ + GrayScaleImageSeries *series = (GrayScaleImageSeries *)malloc(sizeof(GrayScaleImageSeries)); + if (series == NULL) { + return NULL; + } + series->count = anzahl; + + series->labels = (unsigned char *)calloc(anzahl, sizeof(unsigned char)); + if (series->labels == NULL) { + free(series); + return NULL; + } + + series->images = (GrayScaleImage *)calloc(anzahl, sizeof(GrayScaleImage)); + if (series->images == NULL) { + free(series->labels); + free(series); + return NULL; + } + + + return series; +} + GrayScaleImageSeries *readImages(const char *path) { GrayScaleImageSeries *series = NULL; @@ -48,6 +73,11 @@ GrayScaleImageSeries *readImages(const char *path) fclose(bilder); return NULL; } + series = createSeries(werte[0]); + if (series == NULL) { + fclose(bilder); + return NULL; + } return series; }