From 7698e949447b09d00091d5f5c95909548fa2558c Mon Sep 17 00:00:00 2001 From: Hofmann Jonas Date: Sun, 30 Nov 2025 02:03:16 +0100 Subject: [PATCH] rewrote memory allocation and clear function tests not working --- imageInput.c | 46 ++++++++++++++++++++++++++++++++++++++++------ testFile.info2 | Bin 0 -> 163 bytes 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 testFile.info2 diff --git a/imageInput.c b/imageInput.c index f3bda00..7bdde14 100644 --- a/imageInput.c +++ b/imageInput.c @@ -34,13 +34,20 @@ GrayScaleImageSeries *readImages(const char *path) { //Speicheralloziierung komplett umschreichen!!!!! - // Series reservieren mit größe einer grayscaleImageSeries - // ein series->count reservieren mit größe unsigned int - // series->labels reservieren mit zahl count und größe int - // series->images[i].buffer mit zahl series->count *numberOfBytesToRead und size of unsigned Char + // done Series reservieren mit größe einer grayscaleImageSeries + // done initiales image für statusinfos + // done series->labels reservieren mit zahl count und größe int + // done für anzahl count series->images mit size of grayscaleImage + // done für jedes image series->images[i].buffer mit zahl series->count *numberOfBytesToRead und size of unsigned Char + /* series = calloc(amountOfStatusInfoToRead, (3 * sizeof(unsigned int) + 3 * sizeof(headerString))); series->images = calloc(amountOfStatusInfoToRead, (2 * sizeof(unsigned int) + sizeof(headerString))); + // */ + + series = calloc(amountOfStatusInfoToRead, sizeof(GrayScaleImageSeries)); + + series->images = calloc(1, sizeof(GrayScaleImage)); numberOfBytesToRead = readStatusInfo(readSource, series, headerString, sizeOfStausInfoElementsInBytes, amountOfStatusInfoToRead); @@ -49,7 +56,8 @@ GrayScaleImageSeries *readImages(const char *path) // printf("llu %llu\n", series->count * numberOfBytesToRead * sizeof(GrayScalePixelType)); // printf("count %d\n", series->count); // series->images[0].buffer = calloc(((series->count) * numberOfBytesToRead), sizeof(GrayScalePixelType)); - series->labels = calloc((series->count), sizeof(&(series->labels))); + series->images = realloc(series->images, series->count * sizeof(GrayScaleImage)); + series->labels = calloc((series->count), sizeof(&(series->labels))); if (expectedHeader) { @@ -107,6 +115,32 @@ void clearSeries(GrayScaleImageSeries * series) int j = 0; + for (i = 0; i < series->count; i++) + { + for (j = 0; j < series->images[i].width * series->images[i].height; j++) + { + series->images[i].buffer[j] = 0; + } + + series->labels[i] = 0; + series->images[i].width = 0; + series->images[i].height = 0; + } + + for (i = 0; i < series->count; i++) + { + free(series->images[i].buffer); + series->images[i].buffer = NULL; + } + + free(series->labels); + series->labels = NULL; + free(series->images); + series->images = NULL; + free(series); + series = NULL; + + /* // Write NULL into all memory spaces for (i = 0; i < series->count; i++) @@ -138,7 +172,7 @@ void clearSeries(GrayScaleImageSeries * series) series = NULL; printf("cleared\n"); - + */ /* // Write NULL into all memory spaces diff --git a/testFile.info2 b/testFile.info2 new file mode 100644 index 0000000000000000000000000000000000000000..86c028aa6e3659c877027bd8162a76794eb79767 GIT binary patch literal 163 qcma!#&&*59H;T{9O-xUXPs_{!68S~Bi6!yzObi@ANGV{X*Z=@TD+;&( literal 0 HcmV?d00001