Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Dartmouth College

C Programming: Pointers and Memory Management - 4

Dartmouth College and Institut Mines-Télécom via Coursera


In this course, we will examine a key concept, foundational to any programming language: the usage of memory. This course builds upon the basic concept of pointers, discussed in C Programming: Modular Programming and Memory Management, and introduces the more advanced usage of pointers and pointer arithmetic. Arrays of pointers and multidimensional arrays are addressed, and you will learn how to allocate memory for your own data during program execution. This is called dynamic memory allocation at runtime using pointers. Within moments you will be coding hands-on in a browser tool developed for this course, receiving instant feedback on your code. No need to install anything! Why learn C and not another programming language? Did you know that smartphones, your car’s navigation system, robots, drones, trains, and almost all electronic devices have some C-code running under the hood? C is used in any circumstance where speed and flexibility are important, such as in embedded systems or high-performance computing. In this course, you will also gain experience with programming concepts that are foundational to any programming language. At the end of this course, you will reach the fourth milestone in the C Programming with Linux Specialization, unlocking the door to a career in computer engineering. Your job Outlook: - Programmers, developers, engineers, managers, and related industries within scientific computing and data science; - Embedded systems such as transportation, utility networks, and aerospace; - Robotics industry and manufacturing; - IoT (Internet of Things) used in smart homes, automation, and wearables. - IEEE, the world’s largest technical professional organization for the advancement of technology, ranks C as third of the top programming languages of 2021 in demand by employers. (Source: IEEE Spectrum) This course has received financial support from the Patrick & Lina Drahi Foundation.


  • Welcome
    • Let's start coding! You will get familiar with the leaning tools our team has developed to make learning code easier.
  • Week 1: Memory and pointers
    • By the end of Week 1, you will be able to both visualize the concept of a pointer in memory and use pointers in functions with simple pointer arithmetic. You will also demonstrate that an array name is a pointer performing pointer arithmetic and will create functions that accept and modify arrays.
  • Week 2: Multidimensional arrays
    • By the end of Week 2, you will be able to deference pointers using array notation and star notation. You will also be able to store multiple strings in an array and manipulate matrices.
  • Week 3: Dynamic memory allocation
    • By the end of Week 3, you will be able to distinguish between the stack and the heap memory spaces. You will also be able to allocate and deallocate memory programmatically in the heap for arrays.
  • Concluding the course

Taught by

Rémi Sharrock and Petra Bonfert-Taylor


4.7 rating at Coursera based on 41 ratings

Start your review of C Programming: Pointers and Memory Management - 4

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.