結構體中如果存在動態分配內存的情況,一定要注意先釋放內部的內存,然后釋放結構體,釋放順序錯誤或者忘記釋放,都會導致內存泄露。
比如:
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);