Fixing Memory Bugs in C
Tools and techniques for finding and fixing memory bugs in C

What you will learn

Understanding memory management in C

Finding software defects related to memory management in C

Fixing memory bugs in C

Setting up Windows Subsystem for Linux (WSL)

Description

After you’ve learned the basics of the C programming language, including becoming familiar with pointers, you’re ready to start working on some real projects. Whether you’re writing your own code from scratch, or maintaining and extending code written by somebody else, you’ll quickly find that a major source of software defects in C programs is improper memory management.

Memory-related bugs can be difficult and extremely time-consuming to diagnose and fix without good tools. This course will introduce you to some tools and techniques for finding and fixing memory bugs in C programs, as well as teach the concepts behind those issues. It will cover:


Get Instant Notification of New Courses on our Telegram channel.


  • Getting set up
    • Installing Windows Subsystem for Linux (WSL) and Ubuntu (if you’re a Windows user)
    • Installing gcc, make, and Valgrind
    • Integrating VS Code into a WSL workflow
  • Lessons on how to find and fix these kinds of memory bugs:
    • Uninitialized values
    • Invalid reads
    • Invalid writes
    • Invalid frees
    • Fishy values
    • Memory leaks

In each lesson, we will examine a sample C program and use the powerful open-source Valgrind tool to find its defects. For each kind of bug, there will also be a hands-on exercise for you to work through. At the very end there is a final coding challenge that will help you to review everything you’ve learned in the course.

You’ll need a solid start on the C language before you attempt this course, so if you’re new to C, I would highly recommend first working through one of the C for Beginners Udemy courses.

English
language

Content

Introduction

Introduction

Setup

Windows Subsystem for Linux

Memory Bugs

Uninitialized values
Invalid reads
Invalid writes
Invalid frees
Fishy values
Memory leaks

Final Coding Challenge

The Challenge