首页 > 其他 > 详细

在内存中压缩及解压缩

时间:2015-04-21 09:54:57      阅读:245      评论:0      收藏:0      [点我收藏+]

    在内存中压缩及解压缩
    //引入头文件#import <zlib.h>
    //引入libz动态库
    NSString *str = @"zlib compress and uncompress test\nturingo@163.com\n2012-11-05\n";
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    Bytef *text = (Bytef*)[data bytes];
    
    uLong tlen = [data length];
    char* buf = NULL;
    uLong blen;
    
    /* 计算缓冲区大小,并为其分配内存 */
    blen = compressBound(tlen); /* 压缩后的长度是不会超过blen的 */
    if((buf = (char*)malloc(sizeof(char) * blen)) == NULL)
    {
        printf("no enough memory!\n");
        return -1;
    }
    
    /* 压缩 */
    if(compress((Bytef*)buf, &blen, (Bytef*)text, tlen) != Z_OK)
    {
        printf("compress failed!\n");
        return -1;
    }
    
    /* 解压缩 */
    if(uncompress((Bytef*)text, &tlen, (Bytef*)buf, blen) != Z_OK)
    {
        printf("uncompress failed!\n");
        return -1;
    }
    
    /* 打印结果,并释放内存 */
    printf("%s", text);
    if(buf != NULL)
    {
        free(buf);
        buf = NULL;
    }  




在内存中压缩及解压缩

原文:http://blog.csdn.net/qianlima210210/article/details/45153587

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!