There may genuinely be some confusion, let me clarify, when I talk about ownership semantics, I specifically mean:
Who is responsible for “cleaning up” any resource which must be “freed” after it has been “acquired”?
Its part of all languages, whether is a GC, or done manually. It could be dynamic memory, or some I/O like a file or network port. All this stuff about it being related to OOP is nonsense, but I can see why you thought that because RAII is an excellent way to handle it.
As an example, look here: https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-formatmessage
Literally an example of passing ownership of a buffer in the win32 API.
And listen man, programming is hard and asking questions is ok because it gives people a chance to learn something new.
Maybe you should save your comments about working everything out on your own for places other than a forum?
And while im here, everytime you’ve used stackoverflow, you’re being a hypocrite, because if it isn’t you asking for help, it’s you benefitting from someone else asking.