Advanced C Programming Pointers
What you’ll learn
Pointers and addresses
Indirection and multiple indirection
Generic pointers and casts
Memory allocation and reallocation
Singly and doubly linked lists
Queues and stacks
Deep and shallow copying
Common pointer errors
You should understand at least the basics of C programming
To be an expert C programmer you need to master the use of pointers. This course explains pointers in real depth. It explains pointer variables, pointer arithmetic, indirection, memory allocation, how to create and maintain linked lists and how to use function pointers. In fact, by the time you finish this course, you will know pointers inside out. You will understand what they are, how they work and how to make sure that they don’t make your programs crash!
This is not a course for beginners. It is aimed at programmers who already have a good working knowledge of C programming and who need to take the next step in mastering C by gaining a deep understanding of pointers.
If you’ve struggled with pointers and can’t quite figure out what all those ‘arrow diagrams’ really mean or what exactly is the relationship between pointers and addresses, this is the course for you. In a series of short, tightly-targeted lessons, you will learn all about:
computer memory and how pointers access ithow memory is allocated why copying data using pointers can cause program errorswhy some pointers are ‘generic’ what happens when you ‘cast’ pointers to specific typeshow to create singly and doubly linked listshow to use stacks and queueshow to avoid memory leaks and other common problems…and much more.
The source code for all the example programs is provided, so if you need to try out my code you can load it and run it in your preferred C IDE or code editor.
Section 1: Pointer Basics
Lecture 1 What is this course about?
Lecture 2 How to use this course
Lecture 3 Course Notes and FAQ
Lecture 4 Source Code Archive
Lecture 5 What is a pointer?
Lecture 6 Pointer variables
Lecture 7 Indirection
Lecture 8 Study Notes – Step One
Section 2: Addresses and Indirection
Lecture 9 What is the relationship between a pointer and an array (or string)?
Lecture 10 How to display pointer values
Lecture 11 Arrays, addresses and pointers
Lecture 12 Multiple indirection
Lecture 13 Multiple indirection with integers
Lecture 14 Multiple Indirection with strings
Lecture 15 Indirection and commandline args
Lecture 16 Generic Pointers
Lecture 17 Allocating memory
Lecture 18 Malloc and sizeof
Lecture 19 Functions that cause errors or warnings
Lecture 20 calloc
Lecture 21 free
Lecture 22 realloc
Lecture 23 Pointer arithmetic
Lecture 24 Calculating an array index
Lecture 25 Pointers to structs
Lecture 26 Data type alignment
Lecture 27 Type alignment on boundaries
Lecture 28 Type alignment and pointer arithmetic
Lecture 29 Debugging C Programs
Lecture 30 Debugging Multiple Indirection
Lecture 31 Study Notes – Step Two
Section 3: Lists and data structures
Lecture 32 Arrays and Lists
Lecture 33 What is a linked list?
Lecture 34 Singly linked lists
Lecture 35 To free or not to free?
Lecture 36 Doubly linked lists
Lecture 37 Programming a doubly-linked List
Lecture 38 Initializing a doubly-linked list
Lecture 39 Implementing a doubly linked list
Lecture 40 What is a queue?
Lecture 41 Queues
Lecture 42 What is a stack?
Lecture 43 Stacks
Lecture 44 Pushing and popping
Lecture 45 Calculating the length of list
Lecture 46 Copying a list
Lecture 47 Removing an element from within a list
Lecture 48 Adding an element into a list
Lecture 49 Function pointers
Lecture 50 Function pointer declarations
Lecture 51 An array of function pointers
Lecture 52 Study Notes – Step Three
Section 4: Common Pointer Problems
Lecture 53 Why do pointers cause problems?
Lecture 54 Deep and shallow copies
Lecture 55 A deeper look at deep and shallow copies
Lecture 56 Incorrect memory allocation
Lecture 57 Casting pointers
Lecture 58 Incorrect casts
Lecture 59 Freeing already freed memory
Lecture 60 Memory leaks
Lecture 61 Using freed memory
Lecture 62 Pointers out of scope
Lecture 63 Dereferencing a null pointer
Lecture 64 Study Notes – Step Four
Lecture 65 And finally…
Any C programmer who needs to understand pointers in depth
Udemy | English | 3h 52m | 1.81 GB
Created by: Huw Collingbourne