Both of cvLoadImage and cvCreateImage would allocate a new memory space for image..
After you use that two function, you need cvReleaseImage funtion to release that.
Before you release them , a good habit is to use if(image) to detect if it's NULL..
Also..new and delete is allocating and release function in cpp.Please remember that new function will return a pointer..so you can't use it like this : int a =new int;
int* a=new int;
int *a=new int