Write a C program to allocate a 2D matrix dynamically using an array of pointers (double pointer) and print its elements.
First line: R and C. Then R lines of C space-separated integers.
Print the matrix elements.
1 <= R, C <= 5
2 2 1 2 3 4
1 2 3 4
Allocates int** matrix dynamically and accesses elements via pointer dereferencing.
#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;
}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