• Post category:StudyBullet-7
  • Reading time:12 mins read


Advanced Concepts in C Language – Pointers Masterclass, Memory Addressing, Low-Level Programming, Embedded C Preparation

What you will learn

Introduction To Pointers For Beginners

Pointers Declaration, Initialization, and Usage

Pointers Dereferencing

Multiple Indirection

Pointers Arithmetics

Generic Pointers

Dynamic Memory Allocation

“malloc” function

“calloc” function

“realloc” function & “issues”

“free” function

Dangling Pointers

Memory Leakage Tool – Valgrind

Pointers Arithmetic

“sizeof” operator

Arrays & Pointers

Strings & Pointers

A few Secrets of Strings using Pointers

Function Pointers

Arrays of Pointers to Functions

Description

Introduction

C programming language still remains one of the most popular and used languages in 2021.

There is a high demand for C developers in the market – at both large companies as well as startups. Thus, having good C programming skills can give you great career options in different industries, such as:


Get Instant Notification of New Courses on our Telegram channel.


– Cyber Security.

– Smart Homes & Smart Cities.

– Drones.

– And especially in Embedded Systems where you have Sensors and Micro-Controllers.

What you will learn in this course?

There is an ‘ancient’ phrase saying “to become an expert in C – you need to master pointers”.

One of the main objectives of this course is designed to take your basic knowledge of pointers (one of the most significant topics) to the next level. The goal is to take the basic skills you’ve gained so far in C programming and take this knowledge to a whole new level.

We will cover pointers, memory addressing, pointers to functions, advanced concepts of structs and dynamic memory allocation, and so much more.

The beauty of this course is that it regularly gets updated with new material. And the material being added to the course these days includes lots of information in the low-level programming (the bits and bytes), preparation for usage of Embedded C in Embedded Systems, and other very important topics for the next generation of engineers.

This course covers the topics in-depth, from different angles, and with various visualizations and illustrations – that should make the learning process of pointers and low-level programming much easier and fun for you.

Also, you will get a whole dedicated section on how to use a debugger and what is the debugging process that may help you so much in developing your future applications.

After completing this course you will gain plenty of new skills and knowledge that may improve your chances of getting a job position as a C Developer as well as increasing your chances to pass the exam (if you’re still a student).

What’s different about this course?

Vlad Budnitski will be your instructor for this course.

He has years of experience working as a Software Developer (also working with complex systems developed in C language). As well as 4 years of experience teaching C Programming for Beginners and Advanced C Programming in College.

So you got lucky on this one because you will get knowledge from a practical software developer and experienced instructor.

You will get a handpicked, concise, and straight to the point material that you will be amazed by the way these complicated pointers can be taught.

This course is also guided with concrete exercises, challenges, and full solution videos – that will help you to practice the materials.

Who’s this course for?

First of all, this course is not for “absolute beginners” and it requires you to have at least the basic knowledge of programming. It’s assumed you have some knowledge of the basics in C – preferably having completed our “C Programming for Beginners” course (here on Udemy).

This course is great both for students in college as well as graduates who need to learn and understand pointers in depth.

Do you still have got doubts?

That’s OK. Pointers can get us all confused to some extent… If you’re still unsure if this course is exactly what you’re looking for, feel free to go over the full detailed curriculum. Then, enroll in the course and be sure that you’ve done a great decision to improve your knowledge in pointers and to become a better C developer.

English
language

Content

Pointers – Introduction to Basics

Introduction to Pointers + General Visualization
Why using Pointers? [Reasons & Motivation]
Another reasons and motivation behind the usage of pointers
Declaration & Usage of Pointers
Pointers Initialization
Short Dereference
Challenge #1 – Printing Value & Address of a Variable
Challenge #2 – Guessing the Output
Exclusive Pass By Reference Guide
Quick Summary

Pointers Concept and Beyond

Exercise – Swap Function
Milestone #1 – Develop Your Real Swap Function!
Milestone #1 – Solution
Multiple Indirection
Generic Pointer (void star) – What is “void *”?

Arrays & Pointers

Arrays – Memory Representation
Passing an Array to a Function
Challenge #3 – Finding and Passing by Pointer – “Min” & “Max” values of an array
ATTENTION! Problem with Returning a Static Array from a Function

Dynamic Memory Allocation

What is DMA and why we may need it?
“malloc” function
Challenge #2 – Array Allocation Function to Read Input from User and Return Dyn.
“calloc” function
“free” function
Dangling Pointer
Finding Memory Leakages [Valgrind]
“realloc” function
“realloc” issues

Advanced Exercises – Pointers & DMA

Exercise #1 – Creating a “new array” with NO DUPLICATES
Exercise #2 – Splitting “source array” into ODD and EVEN arrays
Exercise #3 – “Lower Case” & “Upper Case” arrays allocation

Strings & Pointers

Returning a string from a function – example with “strConcat”
**Exclusive** Extra Lecture on Strings & Pointers

Linked Lists

Exercise 1 – Create a Linked List
Exercise 2 – Count of Nodes in List
How to use bool Data Types?
Exercise 3 – Finding an Element within a List
Exercise 4 – Count the number of values in a List

Pointers to Functions

Coding Example with Pointers to Functions
An array of Pointers to Functions

Additional Content – README

Additional Content – README!