Обновить sk1/compressor.c

This commit is contained in:
Yevhen Kozirovskyi 2025-01-19 17:48:48 +00:00
parent 7830f11bdf
commit 94646354cf

View File

@ -102,7 +102,21 @@ struct MinHeap* createAndBuildMinHeap(unsigned char data[], int freq[], int size
buildMinHeap(minHeap);
return minHeap;
}
void freeMinHeap(struct MinHeap* minHeap) {
for (int i = 0; i < minHeap->size; ++i) {
free(minHeap->array[i]);
}
free(minHeap->array);
free(minHeap);
}
void freeHuffmanCodes(char* codes[256]) {
for (int i = 0; i < 256; ++i) {
if (codes[i]) {
free(codes[i]);
}
}
}
// Build Huffman Tree
struct MinHeapNode* buildHuffmanTree(unsigned char data[], int freq[], int size) {
struct MinHeapNode *left, *right, *top;
@ -213,6 +227,8 @@ int compressFile(const char* input_file_name, const char* output_file_name) {
for (int i = 0; i < 256; i++) {
if (codes[i]) free(codes[i]);
}
freeHuffmanCodes(codes); // Освободите память для кодов
freeMinHeap(minHeap); // Освободите память для кучи
return 0;
}