pass a 2d array as a parameter in c code example
Example 1: passing 2d array as parameter to function in c
#include <stdio.h>
void fun(int *arr, int m, int n)
{
int i, j;
for (i = 0; i < m; i++){
for (j = 0; j < n; j++)
printf("%d ", *((arr+i*n) + j));
printf("\n");
}
}
int main(void)
{
int arr[][4] = {{1, 2, 3,4}, {4, 5, 6,7}, {7, 8, 9,0}};
int m = 3, n = 4;
fun(&arr, m, n);
return 0;
}
Example 2: how to pass a dynamic 2d array to a function c
#include <stdio.h>
#include <stdlib.h>
void assign(int** arr, int m, int n)
{
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = i + j;
}
}
}
int main(void)
{
int m = 5;
int n = 5;
int **arr = (int **)malloc(m * sizeof(int *));
for (int r = 0; r < m; r++)
arr[r] = (int *)malloc(n * sizeof(int));
assign(arr, m, n);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%3d", arr[i][j]);
}
printf("\n");
}
for (int i = 0; i < m; i++)
free(arr[i]);
free(arr);
return 0;
}