Embedded C Memory Management
C is a powerful low level language. It is close to the machine which allows you to directly manipulate memory with pointers and get a lot of performance from it. However C also allows for the programming of higher level constructs that can make our programs more maintainable and concise.
In this class you will investigate the low level detail of pointers to data and functions. You will use this knowledge to implement higher level constructs like abstract types, inheritance, and dynamic binding. You will also consider CPU caches when creating structures to make your programs efficient.
After completing this course, you will be able to:
- Implement pass-by-reference semantics using pointers
- Manipulate a structure variable through a pointer
- Allocate and release memory on the heap
- Write a function that accepts a function as a parameter
- Combine structures and functions to create higher-level constructs
- Implement inheritance and dynamic binding
- Work with reference counting
- Consider alignment and caches when defining structures
- Make interfaces more clear with const