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