码迷,mamicode.com
首页 > 其他好文 > 详细

在内存中压缩及解压缩

时间:2015-04-21 09:56:50      阅读:132      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!