Double Pointer Matrix

Medium Pointers
Solve in Playground →

Problem Statement

Write a C program to allocate a 2D matrix dynamically using an array of pointers (double pointer) and print its elements.

Input Format

First line: R and C. Then R lines of C space-separated integers.

Output Format

Print the matrix elements.

Constraints

1 <= R, C <= 5

Sample Input

2 2
1 2
3 4

Sample Output

1 2
3 4

Explanation

Allocates int** matrix dynamically and accesses elements via pointer dereferencing.

Starter Code

#include <stdio.h>
#include <stdlib.h>

int main() {
    int r, c;
    if (scanf("%d %d", &r, &c) == 2) {
        int **mat = (int **)malloc(r * sizeof(int *));
        for (int i = 0; i < r; i++) {
            mat[i] = (int *)malloc(c * sizeof(int));
            for (int j = 0; j < c; j++) {
                scanf("%d", &mat[i][j]);
            }
        }
        // Write your code here
        for (int i = 0; i < r; i++) free(mat[i]);
        free(mat);
    }
    return 0;
}

Limits

  • Time Limit: 1s
  • Memory Limit: 256MB

Embedded C Programming

Updated: March 15, 2026
Intermediate

Embedded systems rely on efficient low-level programming to interact directly with hardware. In this course, you will learn how to write practical Embedded C programs used in real microcontroller-based systems. Rather than focusing only on theory, this course follows a practice-driven approach. Each lesson includes hands-on coding exercises that simulate real firmware development tasks used