Handling memory with ownership, borrowing and lifetimes

The concepts of ownership, borrowing and lifetimes helps compilers elegantly translate your code into programs that handle runtime memory with care, not requiring any form of manual freeing or runtime garbage collectors to handle it for you. We will learn about how you can use these concepts to write memory safe software.