When there is a normal difference between heap size and free heap, it is announced next to true heap size. As shown in the picture in the wiki:
"True heap size: 655360 (144 used in System startup)."
"True free heap: 655216"
When the difference is unexpected, it will be as shown in the picture in your first post.
So, should I understand that this difference of 112 (bytes? blocks?) that is
always reported for my app is to be treated as
unexpected?
And probably there is some leak?
I'm a bit confused now.
FYI it is a Win32 GUI app and nevermind what I do in the app, the results are always the same.
Even open and immediately close the main window, the difference of 112 (bytes? blocks? still not sure what is the unit here) is reported.
The report is exactly the same if I do some heavy usage of the app (and believe me, there is a whole lot of allocations being done then).
However, I also have some memory allocated/freed in FormCreate/FormDestroy event handlers, so that the difference can be caused by them.
But wait...
When writing this post I wanted to double-check the behaviour and I have discovered something...
The previous screenshot was taken after running the debug build executable directly from Windows Explorer.
But the report by heaptrc is a bit different in case when I launch the app from IDE by F9 ("Run") in debug build mode.
Now the difference is bigger (208), but it is explicitly stated that the difference comes from "(208 used in System startup)"