百度空间 | 百度首页 
 
查看文章
 
调用relloc函数重新分配内存失败后会释放原有内存吗?
2008-10-05 22:58
问:调用relloc函数重新分配内存失败后会释放原有内存吗?
答:不会,relloc失败后,之前的内存需要自己释放,否则将导致内存泄漏。


样例:
#include "stdlib.h"

const int Orisize = 512;
const int ReSize = 1024;

int main()
{
    char *pOriMem = NULL;
    char *pReMem = NULL;

    /* 申请内存 */
    pOriMem = malloc (Orisize);
    if (NULL == pOriMem)
    {
        return -1;
    }

    /* 重新申请内存 */
    pReMem = realloc (pOriMem, ReSize);
    if (NULL == pReMem)
    {
        /* 注: 重新分配内存失败后,此时原内存还在,如果内存不再使用,需要释放 */
        free(pOriMem);
        return -1;
    }

    return 0;
}

类别:技术 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu