结构体内存释放顺序
结构体中如果存在动态分配内存的情况,一定要注意先释放内部的内存,然后释放结构体,释放顺序错误或者忘记释放,都会导致内存泄露。
比如:
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);