Comment by 1718627440

4 days ago

But for example verifying that memory is not touched after it is supposed to, is much harder when you can't rely on it being freed.

Of course literally running valgrind is still possible, but it is difficult to get useful information.

You cannot have use-after-free if you never call free, so there are no points at which memory should not be touched.

That's the beauty of the never free memory management strategy.

  • It can still be a bug if you use something after you would have freed it because your code isn't meant to be using that object any more. It points to errors in the logic.