how to give value to 2d array in c code example

Example 1: how to get input in 2d array in c

#include <stdio.h>

int main(){

    printf("Enter the number of columns");
    int i; 
    scanf("%d", &i);
    printf("Enter the number of rows");
    int y; 
    scanf("%d", &y);

    int r[i][y];
    int a;
    int b;

        for (a=0; a<i; a++){
            for (b=0; b<y; b++){
    scanf("%d",&r[a][b]);
        }
    }
}

Example 2: how to pass a dynamic 2d array to a function c

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

// Here the parameter is an array of pointers
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;
		}
	}
}

// Program to pass 2D array to a function in C
int main(void)
{
	int m = 5;
	int n = 5;

	// dynamically create array of pointers of size m
	int **arr = (int **)malloc(m * sizeof(int *));

	// dynamically allocate memory of size n for each row
	for (int r = 0; r < m; r++)
		arr[r] = (int *)malloc(n * sizeof(int));

	assign(arr, m, n);

	// print 2D array
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			printf("%3d", arr[i][j]);
		}
		printf("\n");
	}

	// deallocate memory
	for (int i = 0; i < m; i++)
		free(arr[i]);
	free(arr);

	return 0;
}

Tags:

Misc Example