查看文章 |
调用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; } |
最近读者: