malloc内存后的释放

来源:互联网 发布:服装销售数据分析范文 编辑:程序博客网 时间:2024/05/08 20:59

malloc内存后,进行读写操作,当内存使用完毕后需要释放,释放的方法其实就是用free释放。但是使用malloc申请了多个内存到最后要是释放的时候可能会因为free步骤重复变得繁琐,可以将free步骤封装成一个函数,需要的时候直接调用封装好的函数就可以,如下:

void VOS_FREE(void *pData){    if (NULL != pData)    {        free(pData);        pData = NULL;    }    return;}

举例:

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>void VOS_FREE(void *pData);typedef struct stu1{    char name[10];    int age;}stSTUDENT_1,*pstSTUDENT_1;typedef struct stu2{    char name[10];    int age;}stSTUDENT_2,*pstSTUDENT_2;int main(void){    pstSTUDENT_1 p1 = (pstSTUDENT_1)malloc(sizeof(stSTUDENT_1));    strcpy(p1->name,"XiaoMing");    p1->age = 18;    printf("student1 name is : %s\n",p1->name);    printf("student1 age is : %d\n",p1->age);    pstSTUDENT_2 p2 = (pstSTUDENT_2)malloc(sizeof(stSTUDENT_2));    strcpy(p2->name,"XiaoHua");    p2->age = 19;    printf("student2 name is : %s\n",p2->name);    printf("student2 age is : %d\n",p2->age);    VOS_FREE(p1);//调用封装好的free函数释放,下同    VOS_FREE(p2);    return 0;}void VOS_FREE(void *pData){    if (NULL != pData)    {        free(pData);        pData = NULL;    }    return;}

以上。

参考资料:
http://blog.csdn.net/jjw8330519/article/details/52071813

阅读全文
0 0
原创粉丝点击