Advanced C Programming: Pointers

Advanced C Programming: Pointers

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 3.5 Hours | 752 MB

Master pointers, addresses and memory allocation in C

To be an expert C programmer you need to master the use of pointers. This course explains pointers in real depth. It explains pointer variables, pointer arithmetic, indirection, memory allocation, how to create and maintain linked lists and how to use function pointers. In fact, by the time you finish this course, you will know pointers inside out. You will understand what they are, how they work and how to make sure that they don’t make your programs crash!

This is not a course for beginners. It is aimed at programmers who already have a good working knowledge of C programming and who need to take the next step in mastering C by gaining a deep understanding of pointers.

If you’ve struggled with pointers and can’t quite figure out what all those ‘arrow diagrams’ really mean or what exactly is the relationship between pointers and addresses, this is the course for you. In a series of short, tightly-targeted lessons, you will learn all about:

  • computer memory and how pointers access it
  • how memory is allocated
  • why copying data using pointers can cause program errors
  • why some pointers are ‘generic’
  • what happens when you ‘cast’ pointers to specific types
  • how to create singly and doubly linked lists
  • how to use stacks and queues
  • how to avoid memory leaks and other common problems
  • …and much more.

The source code for all the example programs is provided, so if you need to try out my code you can load it and run it in your preferred C IDE or code editor.

Table of Contents

Pointers_Basics
1 What-Is-This-Course-About
2 How-To-Use-This-Course
3 What-Is-A-Pointer
4 Pointer-variables
5 Indirection
6 Multiple-indirection-with-integers
7 C-Pointers-Study-Notes-Step-One
8 ReadMeAndFAQ

Address_and_Indirection
9 What-is-the-relationship-between-a-pointer-and-an-array
10 Arrays-addresses-and-pointers
11 Multiple-Indirection
12 Multiple-indirection-with-integers
13 Multiple-indirection-with-strings
14 Indirection-and-commandline-args
15 Generic-pointers
16 Allocating-memory
17 malloc-and-sizeof
18 Functions-that-cause-errors-or-warnings
19 calloc
20 Free
21 realloc
22 Pointer-arithmetic
23 Calculating-an-array-index
24 Pointers-to-structs
25 Data-type-alignment
26 Type-Alignment-On-Boundaries
27 Type-alignment-and-pointer-arithmetic
28 C-Pointers-Study-Notes-Step-Two
29 How-to-display-pointer-values

Lists_and_Data_Structures
30 Arrays-And-Lists
31 What-is-a-linked-list
32 Singly-linked-lists
33 To-Free-Or-Not-To-Free
34 Doubly-Linked-Lists
35 Programming-A-Doubly-Linked-List
36 Initializing-a-doubly-linked-list
37 Implementing-a-doubly-linked-list
38 What-Is-A-Queue
39 Queues
40 What-Is-A-Stack
41 Stacks
42 Pushing-and-popping
43 Calculating-the-length-of-a-list
44 Copying-a-list
45 Removing-an-element-from-within-a-list
46 Adding-an-element-into-a-list
47 Function-Pointers
48 Function-pointer-declarations
49 An-array-of-function-pointers
50 C-Pointers-Study-Notes-Step-Three

Common_Pointer_Problems
51 Why-do-pointers-cause-problems
52 Deep-And-Shallow-Copies
53 A-deeper-look-at-deep-and-shallow-copies
54 Incorrect-memory-allocation
55 Casting-Pointers
56 Incorrect-casts
57 Freeing-already-freed-memory
58 Memory-leaks
59 Using-freed-memory
60 Pointers-out-of-scope
61 Dereferencing-a-null-pointer
62 And-Finally
63 C-Pointers-Study-Notes-Step-Four