C Programming: Pointers and Memory Management - 4
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
C Programming: Pointers and Memory Management - 4
This course is part of C Programming with Linux Specialization
Instructors: Rémi SHARROCK
5,122 already enrolled
Included with
Ask Coursera
66 reviews
Recommended experience
66 reviews
Recommended experience
What you'll learn
Visualize the concept of a pointer and use it to pass variables to functions by reference in order to modify them via the function
Apply pointer arithmetic in order to address elements of both one-dimensional and multi-dimensional arrays
Use arrays of strings to store lists of strings in one array variable
Control memory usage by dynamically allocating and freeing memory at runtime
Skills you'll gain
Tools you'll learn
Details to know
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 5 modules in this course
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.
Let's start coding! You will get familiar with the leaning tools our team has developed to make learning code easier.
What's included
4 videos10 readings1 assignment1 app item3 discussion prompts
4 videos•Total 12 minutes
- Let's get started•2 minutes
- Get to work with Codecast •4 minutes
- Learn about Taskgrader•3 minutes
- How to navigate the third party tool?•3 minutes
10 readings•Total 48 minutes
- Course syllabus•10 minutes
- Two universities teamed up to offer a new specialization in C Programming with Linux•2 minutes
- The course team•5 minutes
- Collaborative MOOC•2 minutes
- Earn a Specialization from Dartmouth and IMT•1 minute
- Get the most out of this course•1 minute
- Pre-course survey•10 minutes
- Learn how to use Codecast and Taskgrader•5 minutes
- Codecast Sandbox•2 minutes
- Learn how to post code on the Coursera forum•10 minutes
1 assignment•Total 10 minutes
- Are you ready to start?•10 minutes
1 app item•Total 1 minute
- Syntax highlighting in Codecast•1 minute
3 discussion prompts•Total 16 minutes
- Introduce yourself•5 minutes
- Learn how to post code on the Coursera forum•10 minutes
- Technical, general, organisational and other questions•1 minute
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.
What's included
1 assignment4 app items
1 assignment•Total 5 minutes
- Self-assess your learning in Memory and pointers•5 minutes
4 app items•Total 130 minutes
- Define and dereference pointers•60 minutes
- Use pointers with functions•30 minutes
- Work with pointer arithmetic•20 minutes
- Pass arrays to functions•20 minutes
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.
What's included
1 assignment2 app items
1 assignment•Total 5 minutes
- Self-assess your learning in Multidimensional arrays•5 minutes
2 app items•Total 75 minutes
- Work with arrays and pointers•30 minutes
- Store and manipulate strings in arrays•45 minutes
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.
What's included
1 assignment3 app items
1 assignment•Total 5 minutes
- Self-assess your learning in Dynamic memory allocation•5 minutes
3 app items•Total 105 minutes
- Allocate memory at runtime•30 minutes
- Free dynamically allocated memory•30 minutes
- Store and address arrays in dynamically allocated memory•45 minutes
What's included
1 video2 readings
1 video•Total 1 minute
- Closing MOOC 4 - C Programming: Pointers and Memory Management •1 minute
2 readings•Total 12 minutes
- Congratulations•2 minutes
- End of course survey•10 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Explore more from Software Development
- Status: Free TrialD
Dartmouth College
Course
- Status: Free TrialD
Duke University
Course
Guided Project
- Status: Free TrialD
Dartmouth College
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
81.81%
- 4 stars
13.63%
- 3 stars
1.51%
- 2 stars
3.03%
- 1 star
0%
Showing 3 of 66
Reviewed on Dec 3, 2022
Great course with excellent explanation and visualization.
Reviewed on Apr 30, 2026
There are no words to describe how beautiful the entire course is! Particularly the memory point visualization. Many thanks to the course instructors!
Reviewed on Aug 7, 2025
Excellent course, recommend to anyone thinking of moving into programming.
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,
