Pointers (in C)
significance, mechanics and use in design.NOTE: This course is already included in the Library Access!
In one intense, code-first course you’ll build rock-solid mental models, wield multi-level pointers, function callbacks, void*, and heap safely, then read real kernel source like a pro.
From “&” vs “*” to dodging leaks and dangling pointers, leave with the exact pointer super-powers that separate junior coders from firmware ninjas.
Zero fluff, 100 % hands-on.
Bestseller Beginner Intermediate
(4.9) (48 ratings) 760+ students enrolled.
Last updated: 8 November 2025 | English | 365 days Access.
includes
what you will master through the journey
contents and preview lectures ...
Mental Models, Motivation and Reasoning about pointers
You’ll trade confusion for clarity in under an hour. Instead of dry definitions, you’ll lock in a single, vivid mental image that turns every pointer into something you can literally see on a whiteboard or sketch on a napkin. You’ll discover what a pointer truly is (spoiler: it’s not just “a variable holding an address”), why the Linux kernel, FreeRTOS, Zephyr, and every serious RTOS lean on them like oxygen, and the three everyday firmware disasters that disappear once pointers click. By the end, you’ll explain pointers to a five-year-old!
Pointers - Syntax and Code
You’ll fire up a real dev environment in five minutes and start writing pointer code that compiles and runs on your laptop. You’ll declare your first pointer, watch the & operator spit out raw memory addresses, and use * to reach inside that address like a surgeon. By the time you finish, the difference between a pointer variable and the memory it guards will feel as natural as breathing, and you’ll never again mix up “value” versus “address” in your sleep. No slides, no theory—just you, a terminal, and the exact four lines of code that make every kernel tick.
Multi-level Pointers
You’ll level-up from baby steps to ninja territory in one adrenaline-fueled sprint. You’ll chain ** together until you’re juggling triple-star pointers like a circus pro, then watch & peel them back layer by layer. You’ll see why an array name is secretly a pointer, where the two diverge, and how to build an array of pointers that makes qsort() and Linux device tables look trivial. By the final keystroke, you’ll wield “many *s and many &s” without blinking, turn pointer-to-pointer into your secret weapon, and laugh at code that once looked like hieroglyphics, ready to debug any kernel structure on sight.
Pointer to Data
You’ll step inside actual RAM and treat memory like clay in your hands. You’ll point to ints, floats, and custom structs with surgical precision, then swap the clumsy (*p).field for the sleek p->field arrow that every Linux driver lives by. You’ll stride through arrays with p+1, discover why char* walks one byte at a time while int* leaps four, and sketch the exact memory map that turns a flat address into a living struct. By the end, you’ll read any kernel data structure blindfolded, fix off-by-one bugs before breakfast, and never again wonder “where exactly does this pointer land?”
Pointer to Code - Function Pointers or Callbacks
You’ll discover exactly what a function pointer is, master its complete syntax, and clean it up with a single typedef. You’ll then build and run a real function-pointer array that stores multiple functions and calls any one by index.
Void Pointers
You’ll master the shapeshifting void*: what it is, why it exists, and how to wield it safely. You’ll see NULL in action, learn the exact difference between a null pointer and NULL itself, and then dive straight into real Linux kernel code where void* carries structs, buffers, and callbacks across subsystems.
Pointers, Dynamic Allocation and Problems
You’ll master the heap with malloc() and free(), catch allocation failures the moment they happen, hunt down every byte lost to memory leaks, rescue code from dangling pointers, stop double-free crashes cold, and lock out pointer manipulation that wanders into unowned memory.
Open Source Code and Pointers
You will examine pointers in Baremetal Code, trace their use in FreeRTOS, and study how they work in Linux.
The Design and Deliberation
I am a big believer of mental models and visualisations when it comes to learning technical concepts. This course is deliberately heavy on insight and frameworks of thinking about pointers.
Pointers in C is a straight forward concept but it has earned a reputation for being hard to understand. In my opinion, the problem is - most of those who try and learn pointers don’t understand how and what to imagine and reason based off of.
From the very first lecture, you’ll notice that I explain key concepts with visualisation and mental models along with a hands on experiment to prove the point. The course is loaded with insights that will empower you to your pointers like a pro!
Certificate
The journey through the course is a challenging one! Our courses are packed with insights and will take time to sink in. You will be awarded with a Certificate of Mastery when you complete 95% of the course work.

What you see above is a sample certificate. The design of this certificate will be modified from time to time to make it more shiny and reflect the rightly earned pride!
There will always be a dedicated certificate identification number to verify it with us. This should enable anyone to check the authenticity of the certificate.
How this is different from Others
| Feature | Us! | Others |
|---|---|---|
| Explain what pointer in C is. | ||
| Code development without IDE, like how the professionals do it. | ||
| Decomposition of code into Assembly to understand the CPU-Memory interactions. | ||
| Mental models to aid thinking and reasoning. | ||
| A Bottom-Up Approach with the tinge of answering the `Whys`. | ||
| Real and applicable Case study and programming projects | ||
| Teach with insights at the CPU level. |
Instructors
Requirements
Who this course is for
FAQs
Only few initial videos are put on YouTube. The Full course has many more videos and is a paid offering. Learners will also have access to the notes, source code files and other resources.
Is this course good for beginners?
Yes! The course is taught as if the learner has no idea about the C programming language.
Why is the course validity 365 days?
We need to maintain the servers that host the courses. At the moment we have enough capital to keep the server afloat for another until. We are striving to make this a lifetime access course. As the funds trickle in, we will revisit the validity and might update it for all the enrolled learners.
Do I need a special machine configuration to take this course?
No! All you will need is an internet connection and the Chrome browser. The hands-on examples and lab work is based on GitHub codespaces platform.
Why is a GitHub account needed?
The Experiments and Labs are based on the GitHub provided Codespaces virtual machine. Codespaces will enable a common work environment for all the learners and avoid the hassle of special setup.
Can I change my email-id post purchase?
As much as we'd like to support that, your account will be linked to your email-id post purchase.
What name will be printed on the Certificate?
The name you use on the platform will be printed as is on the Certificate when it is generated.
Can I follow the steps on my own PC?
Yes for the most part. Better yet would be if you have a linux machine.


