Finding memory leaks is difficult. The basic nature of the problem is that how can you tell if the process is done with a piece of memory that has been allocated. This is the magic of memory managers in C# and Java (which have the benefit of IL and Javabyte code respectively). The garbage collector makes a determination about whether a variable has gone out of scope and deallocates/frees that memory. There are a lot of tools to help you determine that from your code. Here is a link to one of them:
Without the source code, it would be difficult to analyze. I hope this helps.