A properly implemented libc should track all memory allocations made using the malloc family of operations. Similarly, a properly implememnted libc++ should do the same for anything allocated with new/new[] family of operators. Any leaks should last only as long as the application and any processes it creates remain open.
Conversely, if you use AllocMem() directly, without ever using FreeMem(), you can easily leak all your memory away, if you aren't careful.
However, not getting all the memory back that you had before launching an application isn't necessarily a leak indicator. After all, the application will open libraries and so on, which stay resident until the system is struggling to find memory for something.