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.
Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.
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)
Course 4 of 7 in the C Programming with Linux Specialization.
What You Will 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
Syllabus
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