求助一个关于内存操作的问题。。。

在调试一个一个视频捕捉类
下面 的 char *pByte = new char[xvid_len + 4]; 前几次new 都成功了, 可是几次以后申请内存就一直失败。 *pByte ==NULL; 初学搞不懂为什么。。求助。。。
void CCaptureVideo::PostEncHandler(unsigned char * xvid, int key, int xvid_len)
{
char *pByte = new char[xvid_len + 4];

memcpy(pByte,&xvid_len,sizeof(int));
memcpy(pByte+sizeof(int), xvid, xvid_len);
EnterCriticalSection(&m_cs);
m_lpBuf.push_back(pByte);
LeaveCriticalSection(&m_cs);
SetEvent(m_hCaptureEvent);

}

是不是内存申请过多,只看到申请,没看释放啊,new申请在用完后必须delete释放。