rewrote memory allocation and clear function tests not working

This commit is contained in:
Jonas Hofmann 2025-11-30 02:03:16 +01:00
parent 0a909936ed
commit 7698e94944
2 changed files with 40 additions and 6 deletions

View File

@ -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

BIN
testFile.info2 Normal file

Binary file not shown.