Listing 8 Illustrates a pointer to a 1-d array within a 2-d array

/* array8.c:    Uses a pointer to a 1-d array */
#include <stdio.h>

main()
{
    int a[][4] = {{0,1,2,3),{4,5,6,7},{8,9,0,1}};
    int (*p)[4] = a;  /* Pointer to array of 4 ints */
    int i, j;
    size_t nrows = sizeof a / sizeof a[0];
    size_t ncols = sizeof a[0] / sizeof a[0][0];
    
    printf("sizeof(*p) == %u\n",sizeof(*p));
    for (i = 0; i < nrows; ++i)
    {
       for (j = 0; j < ncols; ++j)
          printf("%d ",p[i][j]);
       putchar('\n');
    }
    return 0;
}

/* Output
sizeof(*p) == 8
0 1 2 3
4 5 6 7
8 9 0 1
*/
/* End of File */