结构体内存释放顺序

结构体中如果存在动态分配内存的情况,一定要注意先释放内部的内存,然后释放结构体,释放顺序错误或者忘记释放,都会导致内存泄露。

比如:

typedef struct TAGmyStr {

   char *p;

   int i;

   char ch[256];

}myStr;

myStr *pstNewStr = (myStr*)malloc(sizeof(myStr));

pstNewStr->p = (char*)malloc(256*(sizeof(char)));

那么释放的时候一个是:

memfree(pstNewStr->p);

memfree(pstNewStr);

 

posted @ 2013-05-23 10:00  乐雨  阅读(3269)  评论(0编辑  收藏  举报