Header File

void* m_buffer;


Constructor
m_buffer = (void *)new RWCString; //member variable intitialized in constructor


Destructor
if (m_buffer)
{
RWCString *pBuffer = (RWCString *)(m_buffer)
delete pStatementBuffer;
}


ClearData()
{
RWCString *pBuffer = (RWCString*)m_buffer;
*pBuffer = "";

}


void
AssignData(LPCTSTR format, ...)
{
char buffer[2048];
char *buffer_ptr = buffer;
va_list argList;

//used sprintf to create format and arglist to form sqlcommand and store in buffer_ptr
for e.g. sprintf(buffer_ptr, format, argList);

RWCString *pBuffer = (RWCString *)m_buffer;
pBuffer->append(buffer);
}

I have a hard time to understand, is this code causing any memory leak when ClearData is followed by AssignData is called repeatedly.
AssignData can be called multiple times in sequence with chunk of code which gets appended.