how to fill 2d arrays using pointers code example

Example 1: c fill 2d array

// Either
int disp[2][4] = {
  {10, 11, 12, 13},
  {14, 15, 16, 17}
};

// Or 
int disp[2][4] = { 10, 11, 12, 13, 14, 15, 16, 17};

// OR
int i, j;
for (i = 0; i < HEIGHT; i++) { // iterate through rows
  for (j = 0; j < WIDTH; j++) { // iterate through columns
    disp[i][j] = disp[i][j];
  }
}

Example 2: accessing elements 2D array using pointers

#include<stdio.h>
//accessing elements of 2D array using pointers
int main(void){

    int arr[4][4]={{1,2,3,4},{5,6,7,8},{9,0,1,2}};
    int *ptr = &arr;

    //accessing the elements of 2D array using ptr
    for(int i=0;i<3;i++){
            for(int j=0;j<4;j++)
            printf("%d ",*((ptr+i*4)+j)); //4 is the number of columns
            //*((ptr+i*4)+j) is similar to arr[i][j]
            printf("\n");
    }
    return 0;
}

Tags:

C Example