passing two dimensional array to function in c
#include <stdio.h> #include <stdlib.h> #define ROWS 3 #define COLS 2 void fun1(int (*)[COLS], int); int main() { int array_2D[ROWS][COLS] = { {1, 2}, {3, 4}, {5, 6} }; int rows = ROWS; /* works here because array_2d is still in scope and still an array */ printf("MAIN: %zu\n",sizeof(array_2D)/sizeof(array_2D[0])); fun1(array_2D, rows); return EXIT_SUCCESS; } void fun1(int (*a)[COLS], int rows) { int i, j; int n, m; n = rows; /* Works, because that information is passed (as "COLS"). It is also redundant because that value is known at compile time (in "COLS"). */ m = (int) (sizeof(a[0])/sizeof(a[0][0])); /* Does not work here because the "decay" in "pointer decay" is meant literally--information is lost. */ printf("FUN1: %zu\n",sizeof(a)/sizeof(a[0])); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { printf("array[%d][%d]=%d\n", i, j, a[i][j]); } } }
Source: riptutorial.com
passing two dimensional array to function in c
#include <stdio.h> #include <stdlib.h> #define ROWS 3 #define COLS 2 void fun1(int **, int, int); int main() { int array_2D[ROWS][COLS] = { {1, 2}, {3, 4}, {5, 6} }; int n = ROWS; int m = COLS; fun1(array_2D, n, m); return EXIT_SUCCESS; } void fun1(int **a, int n, int m) { int i, j; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { printf("array[%d][%d]=%d\n", i, j, a[i][j]); } } }
Source: riptutorial.com
c pass two dimensional array to function
#include <stdio.h> const int M = 3; const int N = 3; void print(int arr[M][N]) { int i, j; for (i = 0; i < M; i++) for (j = 0; j < N; j++) printf("%d ", arr[i][j]); } int main() { int arr[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; print(arr); return 0; }
Source: www.geeksforgeeks.org
2 dimensional array in c
#include<stdio.h> int main(){ /* 2D array declaration*/ int abc[5][4]; /*Counter variables for the loop*/ int i, j; for(i=0; i<5; i++) { for(j=0;j<4;j++) { printf("Enter value for abc[%d][%d]:", i, j); scanf("%d", &abc[i][j]); } } return 0; }
Source: beginnersbook.com