I am trying to get the number of rows and columns of a two-dimensional array from a double pointer pointing to an array.
#include <stdio.h> #include <stdlib.h> void get_details(int **a) { int row = ??? // how get no. of rows int column = ??? // how get no. of columns printf("\n\n%d - %d", row,column); }
Above the function you need to print the size details where the wrong thing happens.
int main(int argc, char *argv[]) { int n = atoi(argv[1]),i,j; int **a =(int **)malloc(n*sizeof(int *)); // using a double pointer for(i=0;i<n;i++) a[i] = (int *)malloc(n*sizeof(int)); printf("\nEnter %d Elements",n*n); for(i=0;i<n;i++) for(j=0;j<n;j++) { printf("\nEnter Element %dx%d : ",i,j); scanf("%d",&a[i][j]); } get_details(a); return 0; }
I use malloc to create an array.
What if I use something like this
column = sizeof (a) / sizeof (int)?
source share