If you&#x27;re using C++ you&#x27;re still using default destructors even if you don&#x27;t write them. In C, you at least get deterministic destruction for variables and structures on the stack. This isn&#x27;t something you really opt out. It&#x27;s there by default.<p>The parent was wrong about vector though, it won&#x27;t safely free elements that do not have their own destructors to clean up their own resources. Another good reason to use RAII everywhere. It costs nothing, to encapsulate memory management.<p>&gt; You could, but why?<p>Because there&#x27;s zero overhead and you guarantee to be passively covered in the few edge cases where you do end up needing deallocation. Now you don&#x27;t have to worry about special handling of edge cases and you have a more general purpose data structure.<p>A better question is, why not?<p>It&#x27;s simply a better designed and more flexible container than a raw array. Other than a bias against C++isms, there&#x27;s no good reason to avoid these useful features.