You have the option to do it manually, of course - full power to the programmer! However...
If you don't want to track pointer lifetimes, you can use interfaced objects, which are reference counted. There are tradeoffs there, but you get to choose them.
The Lazarus IDE is setup out of the box to have debug builds include heaptrc - running your program in debug mode gives you a printout of anything you forgot to free. This is what I've been using.
Do you have a particular example or data structure you're interested in? I'd be glad to help determine if FPC/Lazarus fits your use case.
If you don't want to track pointer lifetimes, you can use interfaced objects, which are reference counted. There are tradeoffs there, but you get to choose them.
The Lazarus IDE is setup out of the box to have debug builds include heaptrc - running your program in debug mode gives you a printout of anything you forgot to free. This is what I've been using.
Do you have a particular example or data structure you're interested in? I'd be glad to help determine if FPC/Lazarus fits your use case.