## 2d Array and pointers

arunbm123
Posts: 96
Joined: Fri Feb 23, 2018 5:36 am

### 2d Array and pointers

hello friends,

please find a simple test Code.
I defined 2D array and passing it to show function. I am not understanding why I am getting Warning..
Anyone kindly enlighten me...

warning: passing argument 1 of 'show' from incompatible pointer type
note: expected 'int *' but argument is of type 'int (*)[5][2]

Code: Select all

``````
int arr[ ][2]={{11,12},{21,22},{31,32},{41,42},{51,52}};
int i,m,n,*j;
m=5;
n=2;
show(arr,m,n);

void show (int *b,int l,int p)
{
int i,j;
printf("show \n");
for(i=0;i<l;i++){
printf("%d %d \n",*(b+i*2+0),*(b+i*2+1));
}
}

``````

DrScanlon
Posts: 11
Joined: Tue Oct 04, 2016 8:46 pm

### Re: 2d Array and pointers

I'm assuming C code. Something like the following should work:

Code: Select all

``````        int arr[][2]={{11,12},{21,22},{31,32},{41,42},{51,52}};
int i,m,n,*j;
//      m=5;
//      n=2;
//      show(arr,m,n);

void show (int *b,int l,int p)
{
int i,j;
printf("show \n");
for(i=0;i<l;i++){
printf("%d %d \n",*(b+i*2+0),*(b+i*2+1));
}
}

void main() {
m = 5;
n = 2;
// 2D array pointer
int *arptr = &arr[0][0];
show(arptr,m,n);
}
``````

fly135
Posts: 606
Joined: Wed Jan 03, 2018 8:33 pm
Location: Orlando, FL

### Re: 2d Array and pointers

I'm doing this off the top of my head, but it should work..
typedef int arr2d[2];

arr2d myvar[] = {{11,12},{21,22},{31,32},{41,42},{51,52}};

or...

arr2d *myvar = {{11,12},{21,22},{31,32},{41,42},{51,52}};

void show (myvar *b,int l,int p);