Embedded C Memory Management

0% of 7 hours and 48 minutes completed.

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
There are no resources available.
0 attachments
0%
Access and manipulate memory with pointers
1 hour 14 minutes 8 Activities: Article  (3)  |  Lab  (3)  |  Video  (2)
0%
Manage your program’s memory usage with heap and stack based allocations
1 hour 38 minutes 7 Activities: Article  (5)  |  Lab  (1)  |  Video  (1)
0%
Create abstract data types using opaque pointers
1 hour 20 minutes 7 Activities: Article  (5)  |  Lab  (1)  |  Video  (1)
0%
Change program behavior at runtime with function pointers
1 hour 6 minutes 6 Activities: Article  (3)  |  Lab  (1)  |  Video  (2)
0%
Write object oriented code in C
1 hour 25 minutes 7 Activities: Article  (3)  |  Lab  (2)  |  Video  (2)
0%
Consider alignment, packing and caches when declaring structures
1 hour 2 minutes 7 Activities: Article  (5)  |  Lab  (1)  |  Video  (1)
0%
Copyright
1 minute 1 Activity: Article  (1)  |  Lab  (0)  |  Video  (0)