Pointers in C: Advanced C /C++ Pointers (Hands-on Guide)
3.9 (34 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,707 students enrolled

Pointers in C: Advanced C /C++ Pointers (Hands-on Guide)

Learn C and C++ Pointers and Memory Management | The Core Concepts of C Programming Pointer with Practical Tests
3.9 (34 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,707 students enrolled
Created by Teach Apex
Last updated 9/2019
English
English [Auto]
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 9 hours on-demand video
  • 10 articles
  • 9 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Comprehension of the importance of pointers in the current technologies.
  • The concept behind pointers and how to do operations with them.
  • Understand how to handle pointers for dynamic memory allocation.
  • Management of multidimensional arrays, vectors and lists, expanding the knowledge of pointers.
  • Understand Indirection and its functionality.
  • Practice with different examples these concepts and functionalities.
  • Create and read binary files with the perspective of pointers.
  • Identify main issues of pointers to be careful and consider for your program.
Requirements
  • Basic understanding of C Programming. (Variable types, Functions, Loops, output/input of strings, arrays and lists)
Description

In the last decades, the technology has improved to the point, where many tasks rely on the performance of the devices or machines which serve the human. For a big group of applications, the execution speed is the priority, in this cases, main aspects get involved like security or robustness, thus in order to reduce the risk and guarantee faster responses C/C++ as programming language supports in many cases the software of those systems, in fact, one of the powerful tools of it is the use and handling of pointers, which provides mechanisms to optimize the performance of an application.

Examples in the automotive sector and robotics can give us a brief idea of why you need speed in those systems that interact directly with humans, where it requires responses in real-time. Also, there is a quite expanded use of pointers in game development, where it has to assure a real player’s actual experience of the game.

This course focuses on understanding the different functionalities of pointers with conceptual and practical examples, teaching you to perceive what happens internally in memory when we apply different functionalities of pointers. If you want more than a superficial look at handling pointers, this course is for you.


PREREQUISITES / KNOWLEDGE YOU ARE ASSUMED TO HAVE:

· Basic understanding of C Programming. (Variable types, Functions, Loops, output/input of strings, arrays, and lists)

· Object-oriented programming


TIPS (for getting through the course):

· Write down some definitions, if you need to.

· Write code yourself, don't just sit there and look at my code.

· Try to explore each topic by yourself doing variations to the examples.

· Rely on web documentation of C/C++ for functions or details which are unclear for you, right after you’ve seen it, thus you avoid accumulating doubts.


WHAT ORDER SHOULD I TAKE YOUR COURSES IN?:

· Try to follow the usual order of each section, since the level of the exercises increases progressively.


Who this course is for:

· Understand the different functionalities of pointers and memory management in C/C++ programming language.

· Students studying basic programming or object-oriented programming with basic knowledge of C/C++.

· Professionals who want to apply pointers to optimize some programs or applications of the certain systems.

· Entrepreneurs who want to apply pointers to optimize some programs or applications of the certain systems.

· Students in computer science who want to learn more about pointers and memory management.

Who this course is for:
  • Students in computer science who want to learn more about pointers and memory management.
  • Students studying basic programming or object-oriented programming with basic knowledge of C/C++.
  • Professionals who want to apply pointers to optimize some program or application of certain system.
  • Entrepreneurs who want to apply pointers to optimize some program or application of certain system.
  • Who wants to understand the different functionalities of pointers and memory management in C/C++ programming language.
Course content
Expand all 61 lectures 09:18:33
+ Introduction
2 lectures 04:02

Introduction of the course

Preview 02:02

This video describes about the instructor's experience and qualifications

Preview 02:00
+ Introduction
4 lectures 28:50

This lecture explains some advantages of using pointers, as well as provides an overview of the course and the course objectives.

Advantages of pointers and Overview of the course
08:27

This lecture gives a first bite about application memory by showing how to get the size of a variable and objects, as well as the address where they are allocated.

Application memory and variables location
11:18

In this lesson, we’re going to briefly discuss about how to work with pointers by learning some basic concepts like Referencing a variable and Dereferencing a pointer.

Working with Pointers – Referencing and Dereferencing a Variable
07:57
MCQs
01:08
+ Section 2: Pointer Arithmetic and Types
7 lectures 53:59

Pointer Arithmetic is really important for memory management, so this lecture explains how to use the incrementing and decrementing operations with pointers.

Incrementing and decrementing a pointer (++, --, + and -)
09:07

Furthering with pointer arithmetic, we begin our first steps in handling values in memory by learning how to use pointers comparison to move through memory locations.

Pointers comparison (==, <, >)
06:47

As well as common variables, pointers have also different types, therefore we take a brief look into them, learning how to use them and why it’s important to keep them in mind.

Pointer types
07:32

A void pointer, also known as a generic pointer has some features that are useful in some cases, therefore this lesson focused on discussing how to use generic pointers and when they are helpful.

Generic Pointers (void Pointer)
11:50

Another feature used with pointers is the ‘const’ keyword, that’s why this lecture discuss how to use the constant keyword with pointers and when they are helpful.

Pointers with the Const keyword
11:54

Before beginning with the next section, it’s important to start learning more about how the use of the application memory works by looking some concepts and overview of its functionalities.

Simplified concept of the use of memory
05:42
MCQs
01:07
+ Pointers and Function
4 lectures 31:38

This lecture explains what is a reference and why is important to understand here the meaning of a local variable and its lifetime within the program.

References and local variables in functions
11:30

In this lesson, we’re going to discuss how it can be optimized the use of memory of your program by using references and pointers between function frames.

Pointers as function arguments
06:32

Pointers can be shared also from a function, but there is here critical aspects to consider which this lesson explains, in order to be careful by doing this.

Pointers as function returns
12:15
MCQs
01:21
+ Section 4: Pointers and Array Addresses
12 lectures 02:23:42

In this lesson, we’re going to discuss how are related the pointers and arrays and different ways to use them in your code.

Pointers and Arrays
15:55

Using pointers, there is different ways to loop through arrays and we’re going to discuss them in this lesson by looking it is helpful to use them.

Looping through arrays
13:03

This lecture explains how to pass an array to a function, providing you also with some aspects to consider for the syntax.

Passing arrays to a function
13:49

In this video, we’re going to discuss about how Characters and Strings are related and handling those with pointers by doing some practical examples.

String and character arrays – Part 1
10:57

In this lecture, we further with the use of string and character arrays by learning what to consider when you pass an array of characters to a function.

String and character arrays – Part 2
11:57

Reversing an string is recommended practical exercise to learn more about String and Pointers by training some concepts.

Reversing a string
07:01

This lesson discuss about having higher dimensional arrays by explaining how to handel two dimensional arrays and higher dimensions.

Multidimensional Arrays
15:54

This video shows how the function ‘sizeof’ is useful to iterate through multidimensional arrrays by doing some practical exercises creating 2D and 3D arrays.

Sizeof for Arrays and Multidimensional Arrays
09:12

This lesson explains how we can use pointers to work with muldimensional arrays by beginning with a practical exercise for 2D-Arrays.

2D Arrays and Pointers
16:42

Sometimes is difficult to imagine dimension higher dimensions than our 3D physical space where we live, so in this lecture, we further with the use of pointers for multidimensional arrays by simplifying the understanding of them.

Preview 15:22

There is some features to take in account, when you share multidimensional arrays between function frames, therefore this lesson take look of this case.

Passing multidimensional arrays to a function
13:06
MCQs
00:44
+ Indirection
6 lectures 59:34

In this lecture, we’re going to discuss about about having pointer to pointers, learning how to use them and what to consider when you address a pointer with another pointer variable.

Multiple Indirection (Pointer to Pointer)
16:13

This video explains why we can find multiple indirection in the case of strings and how to handle pointer to pointer between functions.

Multiple Indirection for Strings and Functions
12:08

This video further with the features for references and pointers by discussing what differences appear when you use a reference and when you use a pointer, by doing practical exercises.

Differences between a Reference Variable and a Pointer Variable
13:50

In this lesson, we’re going to look how to create a reference to a pointer variable and using it as function argument.

Reference to a pointer
09:38

This lecture provides a look into sharing references between function frames by returning it from a function, and important aspects to consider.

Returning a reference from a function
06:23
MCQs
01:22
+ Section 6: Dynamic Memory Allocation
9 lectures 01:32:16

Before beginning to allocate memory dynamically, we’re going to see more in detail how the application memory works by learning more about the segments in which the memory of your application is distributed, as well as different important concepts and aspects to consider.

Regions of Memory: Stack vs Heap - Part 1
09:43

Furthering with the functionalities around the application memory, this video explains more about important facts to consider for coding when we are allocating memory in the heap in C and C++, through practical exercises.

Regions of Memory: Stack vs Heap - Part 2
09:54

In this lecture, we’re going to discuss about learn how to allocate and deallocate dynamically memory by using the heap segment.

Allocating and Freeing dynamically memory activity – malloc, calloc, realloc, fr
15:17

Multiple indirection can also be used for multidimensional arrays, so this lesson takes a look to the use of the pointer based approach for these arrays to allocate its elements in the heap, as well as the advantages of doing that.

Storing and addressing Pointer based multi-dimensinal Arrays
12:35

This video explains the basic concept of using the address or entry point of a function inside your program, and how function pointers take advantage of this.

Concept behind Function Pointers
05:54

Furthering with the syntax of function pointers by understanding its functionalit through a practical exercise.

Preview 14:57

In this lecture, we’re going to discuss about use cases of Function Pointers by applying them between function frames during runtime furthering with this topic.

Applying Function Pointers – Part 1
11:56

In this video, we further with the application of function pointers by learning how to create general functions and use them through Function Pointers to generalize its purpose and making your code more efficient.

Applying Function Pointers – Part 2
10:55
FAQs
01:05
+ Section 7: Vectors and Lists
6 lectures 01:01:07

the concept of vector as a data structure to storage information

Vectors , adding and removing elements
15:18

Methods

Vectors and Memory
15:27

How to create multidimensional vector and operate with them.

Two-Dimensional Vectors
09:00

a conceptual approach to understand lists and how different they are from other structures by making allocation and deallocation more efficient.

Concept behind Lists
03:41

deep down in the class List through a practical approach by using some of its methods to understand this type of structure.

Lists , adding and removing elements
16:23
MCQs
01:18
+ Section 8: Text and Binary Files
3 lectures 20:46

Here, we dicuss how to write text files as a sequence of characters in the secondary memory of the computer and the some techniques used for this task.

Writing Text Files
11:37

This videos dicuss about how to read and bring to the application memory of your program a text written in the secondary memory of the machine.

Reading Text Files
08:10
MCQs
00:59
+ Section 9: Common Pointer Issues to consider
7 lectures 01:00:40

In this lecture, we create structures as an object of easy access and specify the length of the packages, which are going to be used to write and read it into and from the secondary memory.

Structs and Padding
08:25

From a pointers perspective, it's explained here how to write and read binary files between the application memory and the secondary storage of the machine, as well as important details to consider by creating binary files to improve this task according to the objects to be saved by doing some practical exercises handling a structure.

Reading and Writing Binary Files
14:45

In this lecture, we discuss about problems with inefficient manage of the application memory by letting allocated memory unused until the point of consuming large amount of resources.

Memory Leak
10:43

This video explains how dangling references are generated and which issues are encountered when the addresses of freed memory are used.

Dangling Reference – using freed memory
08:17

In this video tutorial, it's explained and clarified in detail the lifetime of a pointer variable in the application memory

Pointers out of scope
05:03

This lesson focused on the difference between a Shallow Copy and a Deep Copy, while we are making copies of an object that allocates memory dynamically.

Shallow vs Deep Copies
12:19
MCQs
01:08