Hackr.io is a community to find and share the best online courses & tutorials. Join them, it only takes 30 seconds.

Here's how it works:


Anybody can submit a course or a tutorial


Community upvotes the useful tutorials


The best tutorials rise to the top

Advanced C Programming: Pointers (udemy.com)

Visit Tutorial
My Courses
Paid Video Advanced
#4 out of total 29 C tutorials & courses

Why developers like this tutorial (one-liner reviews):

Content quality

Qualified Instructor

Video quality

Course Pace

Course depth and Coverage

Add your one-liner review here:

Tutorial Info

Self Paced
4 hours on-demand video
Available On Completion
Taught by:
Submitted by:
Visit Tutorial

Tutorial Details

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


  • 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 it
  • how memory is allocated 
  • why copying data using pointers can cause program errors
  • why some pointers are ‘generic’ 
  • what happens when you ‘cast’ pointers to specific types
  • how to create singly and doubly linked lists
  • how to use stacks and queues
  • how 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.

Who is the target audience?
  • Any C programmer who needs to understand pointers in depth


Pointer Basics

What is this course about?

How to use this course

Course Notes and FAQ

Source Code Archive

What is a pointer?

Pointer variables


Pointer Basics

Study Notes – Step One

Addresses and Indirection

What is the relationship between a pointer and an array (or string)?

How to display pointer values

Arrays, addresses and pointers

Multiple indirection

Multiple indirection with integers

Multiple Indirection with strings

Indirection and commandline args

Generic Pointers

Allocating memory

Malloc and sizeof

Functions that cause errors or warnings




Pointer arithmetic

Calculating an array index

Pointers to structs

Data type alignment

Type alignment on boundaries

Type alignment and pointer arithmetic

Debugging C Programs

Debugging Multiple Indirection

Addresses and Indirection

Study Notes – Step Two

Lists and data structures

Arrays and Lists

What is a linked list?

Singly linked lists

To free or not to free?

Doubly linked lists

Programming a doubly-linked List

Initializing a doubly-linked list

Implementing a doubly linked list

What is a queue?


What is a stack?


Pushing and popping

Calculating the length of list

Copying a list

Removing an element from within a list

Adding an element into a list

Function pointers

Function pointer declarations

An array of function pointers

Lists and Data Structures

Study Notes – Step Three

Common Pointer Problems

Why do pointers cause problems?

Deep and shallow copies

A deeper look at deep and shallow copies

Incorrect memory allocation

Casting pointers

Incorrect casts

Freeing already freed memory

Memory leaks

Using freed memory

Pointers out of scope

Dereferencing a null pointer

Common pointer problems

Study Notes – Step Four

And finally...

Discuss this tutorial:

Ask a question or write your feedback/review of this course or tell anything to the people taking this course.

Arif Shaik
8 months ago

Anybody learning C Language ?

Saurabh Hooda
8 months ago

@arif-shaik you can enroll as a programming buddy (by clicking on 'Find a programming buddy' button above) and we will connect you with a fellow C learner.

More C Tutorials