| ▲ | cjfd 9 hours ago | |
The difference is that in C one is supposed to do allocations and deallocations oneself. Then move semantics is just pointer assignment with, of course, the catch that one should make sure one does not do a double-free because ownership is implicit. In C++ ownership is indicated by types so one has to write more stuff to indicate the ownership. | ||
| ▲ | SJC_Hacker 7 hours ago | parent [-] | |
> The difference is that in C one is supposed to do allocations and deallocations oneself No, you should only use the heap if necessary. The bigger issue in C is there is no concept of references, so if you want to modify memory, the only recourse is return-by-value or a pointer. Usually you see the latter, before return value optimization it was considered a waste of cycles to copy structs. In the embedded world, its often the case you won't see a single malloc/free anywhere. Because sizes of inputs were often fixed and known at compile time for a particular configuration. | ||