printf("inflate with dictionary: %s\n", uncompr);
printf("inflate with dictionary: %s\n", (char *)uncompr);
void test_dict_inflate(compr, comprLen, uncompr, uncomprLen)    Byte *compr, *uncompr;    uLong comprLen, uncomprLen;{    int err;    z_stream d_stream; /* decompression stream */    strcpy((char*)uncompr, "garbage");    d_stream.zalloc = (alloc_func)0;    d_stream.zfree = (free_func)0;    d_stream.opaque = (voidpf)0;    err = inflateInit(&d_stream);    CHECK_ERR(err, "inflateInit");    d_stream.next_in  = compr;    d_stream.avail_in = (uInt)comprLen;    d_stream.next_out = uncompr;    d_stream.avail_out = (uInt)uncomprLen;    for (;;) {        err = inflate(&d_stream, Z_NO_FLUSH);        if (err == Z_STREAM_END) break;	if (err == Z_NEED_DICT) {	    if (d_stream.adler != dictId) {		fprintf(stderr, "unexpected dictionary");		exit(1);	    }	    err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary,				       sizeof(dictionary));	}        CHECK_ERR(err, "inflate with dict");    }    err = inflateEnd(&d_stream);    CHECK_ERR(err, "inflateEnd");    if (strcmp((char*)uncompr, hello)) {        fprintf(stderr, "bad inflate with dict\n");    } else {        printf("inflate with dictionary: %s\n", uncompr);    }}