Обновить sk1/compressor.c
This commit is contained in:
		
							parent
							
								
									7830f11bdf
								
							
						
					
					
						commit
						94646354cf
					
				| @ -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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user