- Introduction
- Windows Subsystem for Linux and Valgrind
- Uninitialized values
- Invalid reads
- Invalid writes
- Invalid frees
- Fishy values
- Memory leaks
- The Challenge
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:
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.
Quickly learn Looker Studio / Google Data Studio using this Step by Step Guide - & create powerful Dashboards & Reports
Learn principles, practices, and tools for streamlined software delivery in DevOps.
Ansible to the absolute beginner in DevOps with hands-on
Learn all the 12 tenses of the English language step by step
This course you will learn you Video Editing using Adobe Premiere Pro 2022.
An introduction to CSS. A course designed to give you the confidence in defining CSS styles.
I'm a senior software engineer with over 20 years of professional experience. Some of my favorite languages are C, Python, and Javascript. I work for an electronic medical records software company, where my favorite projects involve making tools and libraries for other developers to use.
Some of my other interests include Mandarin Chinese and classical guitar.