When you're freeing memory, remember to set the memory contents to 0 so no other malicious program can read it after it's been freed.
//For example
#define DATA_SIZE
BOOL function()
{
char pszData = NULL; //Memory pointer
//Allocate memory
pszData = new char [DATA_SIZE];
if(pszData == NULL){
return(FALSE);
}
//Reset the memory Initially
memset(pszData, 0, sizeof(char) * DATA_SIZE);
.... //Use the memory and free it before the return() statement
//The below part is Important to protect the data
memset(pszData, 0, sizeof(char) * DATA_SIZE);
delete [] pszData;
return(TRUE);
}