关于C++的free函数解决办法

关于C++的free函数
Small* pSmallIterator = pSmall;
 while(pSmall){
  pSmallIterator = pSmallIterator->pNext;
  free(pSmall);
  pSmall = pSmallIterator;
 }
pSmall 是个单向链表的头结点  这样释放会内存泄漏
MAX = 120;
Small* pNew = (Small*)malloc(MAX); 这句是收集节点

我在一个while循环里 发现内存在一直涨  求解哪里错了
------解决方案--------------------
查查看malloc是否与free是对应的,如果是new分配的只能用delete而不是free进行释放。

引用:
Small* pSmallIterator = pSmall;
 while(pSmall){
  pSmallIterator = pSmallIterator->pNext;
  free(pSmall);
  pSmall = pSmallIterator;
 }
pSmall 是个单向链表的头结点  这样释放会内存泄漏
MAX = 120;
Small* pNew = (Small*)malloc(MAX); 这句是收集节点

我在一个while循环里 发现内存在一直涨  求解哪里错了