C Programming: Modular Programming and Memory Management

Brought by: edX

Overview

In this course, part of the C Programming with Linux Professional Certificate program, you will be introduced to the concept of modular programming: that is, dividing up more complex tasks into manageable pieces.

Within moments you will be coding hands-on in a new browser tool developed for this course, receiving instant feedback on your code. No need to install anything!

You will learn how to write your own functions (just like functions in mathematics for example). You will also gain insight into a computer's architecture and learn how its memory is organized.

Given the vast amount of memory computers have these days, how does your program remember where a certain variable is stored? This brings about the important topic of how memory is efficiently addressed inside a computer, and with it, the topic of pointers.

Pointers are often considered the most difficult part and main struggle for C program developers. We will introduce you to this central topic with our novel and innovative visualization tools and show you precisely how pointers work. No need to struggle!

The programming concepts you will gain in this course are foundational to any programming language.

By the end of this short course, you willhave reached the third milestonein the C Programming with Linux Professional Certificate program, unlocking the door to a career in computer engineering.

This course has received financial support from the Patrick & Lina Drahi Foundation.

Taught by

Petra Bonfert-Taylor and Rémi Sharrock

C Programming: Modular Programming and Memory Management
Go to course

C Programming: Modular Programming and Memory Management

Brought by: edX

  • edX
  • Free
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English
8.1.2PHP Version256msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (148ms)
    • Application (108ms)
    • 1 x Booting (57.7%)
      147.81ms
      1 x Application (42.06%)
      107.75ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed20.06ms
      • select * from `courses` where `slug_en` = 'c-programming:-modular-programming-and-memory-management' limit 1
        18.34ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. c-programming:-modular-programming-and-memory-management
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-05-01 06:57:45' where `id` = 6819
        650μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-05-01 06:57:45
        • 1. 6819
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (1)
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (59) and `institutions`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 6810 limit 1
        280μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 6810
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        pm5bw3bw8MIoOVXr7OR5mGgyuCP0sB12Q3DNP6N9
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/c-programming:-modular-programming-and-me...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/c-programming:-modular-programming-and-memory-management
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.21.75.104" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.21.75.104" ] "cf-ray" => array:1 [ 0 => "938d62eed85e1230-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.21.75.104" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.21.75.104" "HTTP_CF_RAY" => "938d62eed85e1230-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "49036" "REMOTE_ADDR" => "172.69.59.158" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/c-programming:-modular-programming-and-memory-management" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1746082665.0401 "REQUEST_TIME" => 1746082665 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Thu, 01 May 2025 06:57:45 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImE5QWI5SzNVamRnQXhaZG9HbENQelE9PSIsInZhbHVlIjoiQUc1Uk9hUzhqamxXMHlHYUozNXZKMDNkd3FFWGZ6N29ZMnlqeDVPMlZyVEhWUzVuWG5aZWMvd3ZxVnE0dHZFbGpuMDVVQU1CdS9lYThyeUdIWGpaNmZSMVQ1dGRraDNKYVFLQjNjd3BpVzlyZXJKWkVhZXRpd3UxUlFHRk83OU0iLCJtYWMiOiIzMDA4OTFlNTgzMzE3OTVhNWU3MjQ2YjUzNGRlZGNiYmQzMzA4NWExYzllNjE0NjU0ZTU1NmMzZGVlMThkMzYyIiwidGFnIjoiIn0%3D; expires=Thu, 01 May 2025 08:57:45 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImE5QWI5SzNVamRnQXhaZG9HbENQelE9PSIsInZhbHVlIjoiQUc1Uk9hUzhqamxXMHlHYUozNXZKMDNkd3FFWGZ6N29ZMnlqeDVPMlZyVEhWUzVuWG5aZWMvd3ZxVnE0dHZFbGpuMDVVQ" 1 => "laravel_session=eyJpdiI6ImJRMjZyOTA0OXNlcUhKV01US0ptY1E9PSIsInZhbHVlIjoiZnVjb0t6V3JBTVF5UXB4U05vNkM4WDVWdnVESUlVR1BFUjJqLzJsaCswR3lPdDFBYjh5WExkNEZNNXRIYWYwcThXWTQraEtzdjJUaTFMK2VwUmdpQ3Z5VG5ERS9ubXdpc1JBQTJtMWcwc0NTSENjY0VmSllYQTljU1Joa1Q0NDMiLCJtYWMiOiJkYzk2OGY2MWY1ODIzMzEyYzU4NmNmZTJhOWU0OTMxOGI4NTYwODhlNTIxNjcxNzRlZmU5N2Q1Nzc4YjU2MjZiIiwidGFnIjoiIn0%3D; expires=Thu, 01 May 2025 08:57:45 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImJRMjZyOTA0OXNlcUhKV01US0ptY1E9PSIsInZhbHVlIjoiZnVjb0t6V3JBTVF5UXB4U05vNkM4WDVWdnVESUlVR1BFUjJqLzJsaCswR3lPdDFBYjh5WExkNEZNNXRIYWYwcThX" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImE5QWI5SzNVamRnQXhaZG9HbENQelE9PSIsInZhbHVlIjoiQUc1Uk9hUzhqamxXMHlHYUozNXZKMDNkd3FFWGZ6N29ZMnlqeDVPMlZyVEhWUzVuWG5aZWMvd3ZxVnE0dHZFbGpuMDVVQU1CdS9lYThyeUdIWGpaNmZSMVQ1dGRraDNKYVFLQjNjd3BpVzlyZXJKWkVhZXRpd3UxUlFHRk83OU0iLCJtYWMiOiIzMDA4OTFlNTgzMzE3OTVhNWU3MjQ2YjUzNGRlZGNiYmQzMzA4NWExYzllNjE0NjU0ZTU1NmMzZGVlMThkMzYyIiwidGFnIjoiIn0%3D; expires=Thu, 01-May-2025 08:57:45 GMT; path=/XSRF-TOKEN=eyJpdiI6ImE5QWI5SzNVamRnQXhaZG9HbENQelE9PSIsInZhbHVlIjoiQUc1Uk9hUzhqamxXMHlHYUozNXZKMDNkd3FFWGZ6N29ZMnlqeDVPMlZyVEhWUzVuWG5aZWMvd3ZxVnE0dHZFbGpuMDVVQ" 1 => "laravel_session=eyJpdiI6ImJRMjZyOTA0OXNlcUhKV01US0ptY1E9PSIsInZhbHVlIjoiZnVjb0t6V3JBTVF5UXB4U05vNkM4WDVWdnVESUlVR1BFUjJqLzJsaCswR3lPdDFBYjh5WExkNEZNNXRIYWYwcThXWTQraEtzdjJUaTFMK2VwUmdpQ3Z5VG5ERS9ubXdpc1JBQTJtMWcwc0NTSENjY0VmSllYQTljU1Joa1Q0NDMiLCJtYWMiOiJkYzk2OGY2MWY1ODIzMzEyYzU4NmNmZTJhOWU0OTMxOGI4NTYwODhlNTIxNjcxNzRlZmU5N2Q1Nzc4YjU2MjZiIiwidGFnIjoiIn0%3D; expires=Thu, 01-May-2025 08:57:45 GMT; path=/; httponlylaravel_session=eyJpdiI6ImJRMjZyOTA0OXNlcUhKV01US0ptY1E9PSIsInZhbHVlIjoiZnVjb0t6V3JBTVF5UXB4U05vNkM4WDVWdnVESUlVR1BFUjJqLzJsaCswR3lPdDFBYjh5WExkNEZNNXRIYWYwcThX" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "pm5bw3bw8MIoOVXr7OR5mGgyuCP0sB12Q3DNP6N9" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/c-programming:-modular-programming-and-memory-management" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]