#include <stdio.h> #include <stdlib.h> #include <zlib.h> #include "dragon_data.h" // Include the embedded binary data #define DRAGON_BUFFER_SIZE 100000 // EXTRA CREDIT - print the Drexel dragon from embedded binary extern void print_dragon() { unsigned char *decompressed_data = (unsigned char *)malloc(DRAGON_BUFFER_SIZE); if (!decompressed_data) { fprintf(stderr, "Memory allocation failed!\n"); return; } uLongf decompressed_size = DRAGON_BUFFER_SIZE; // Ensure correct decompression if (uncompress(decompressed_data, &decompressed_size, DRAGON_BIN, DRAGON_BIN_SIZE) != Z_OK) { fprintf(stderr, "Decompression fail\n"); free(decompressed_data); return; } printf("%s", decompressed_data); free(decompressed_data); }