In C array elements are guaranteed to be contiguous memory elements, and a 2 dimensional array is an array of arrays, so say for an array int a[10][20]; a[0] is itself an array, and its elements must be contiguous. Equally a[0] is contiguous with a[1].