Introduction to C Programming
3 Topics
Getting Started with C
5 Sub-topics
What is C Programming and Why Learn It
History and Evolution of C Language
Applications of C in Modern Computing
C vs Other Programming Languages
Understanding Compiled Languages
Setting Up Development Environment
5 Sub-topics
Setting Up Development Environment on Windows
Setting Up Development Environment on Linux
Setting Up Development Environment on macOS
Installing GCC Compiler Step by Step
Choosing an IDE (VS Code, Code::Blocks, Dev-C++)
Your First C Program
5 Sub-topics
Writing Your First C Program (Hello World)
Understanding the Compilation Process
Compilation Stages (Preprocessing to Linking)
Running C Programs from Terminal
Common Beginner Errors and How to Fix Them
Pointers Part 1 - Fundamentals
4 Topics
Pointer Basics
7 Sub-topics
Introduction to Pointers What and Why
Memory Addresses Explained
Declaring Pointer Variables
The Address-of Operator (&)
The Dereference Operator (*)
Pointer Initialization Best Practices
NULL Pointers Safe Initialization
Pointer Arithmetic
3 Sub-topics
Pointer Arithmetic Increment/Decrement
Pointer Arithmetic Addition/Subtraction
Pointer Arithmetic Comparison
Pointers and Arrays
4 Sub-topics
Pointers and Arrays The Connection
Pointer Notation vs Array Notation
Pointers to Access Array Elements
Difference Between Pointer and Array Name
Special Pointers
5 Sub-topics
Generic Pointer void Pointer
Type Casting with void Pointers
Dangling Pointers What and How to Avoid
Wild Pointers Uninitialized Pointers
Dynamic Memory Allocation
5 Topics
Memory Concepts
3 Sub-topics
Introduction to Dynamic Memory
Why Dynamic Allocation is Needed
Memory Allocation Functions
7 Sub-topics
malloc() Practical Examples
malloc() vs calloc() Differences
realloc() Growing and Shrinking Memory
Memory Management Issues
4 Sub-topics
Memory Leak What and How to Prevent
Use After Free Dangerous Bug
Dynamic Data Structures
4 Sub-topics
Dynamic Arrays 1D Implementation
Dynamic 2D Arrays Array of Pointers
Dynamic 2D Arrays Contiguous Memory
Memory Best Practices
4 Sub-topics
Memory Allocation Failure Handling
Best Practices for Memory Management
Memory Debugging Tools Valgrind Introduction