Advanced C Programming Pointers

Master pointers, addresses and memory allocation in C
Advanced C Programming Pointers
File Size :
1.81 GB
Total length :
3h 52m



Huw Collingbourne


Last update

Last updated 8/2019



Advanced C Programming Pointers

What you’ll learn

Pointers and addresses
Indirection and multiple indirection
Generic pointers and casts
Memory allocation and reallocation
Pointer arithmetic
Singly and doubly linked lists
Queues and stacks
Deep and shallow copying
Common pointer errors

Advanced C Programming Pointers


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

Course Information:

Udemy | English | 3h 52m | 1.81 GB
Created by: Huw Collingbourne

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top