How to print 2D array as 1D array in C

1 Answer

0 votes
#include <stdio.h>
 
#define ROWS 3
#define COLS 4
   
 
int main() {
    int arr2d[ROWS][COLS] = {{5, 3, 8, 0}, {9, 2, 4, 1}, {96, 45, 17, 23}};
    int length = ROWS * COLS;
    int *p = *arr2d;
    
    // C arrays are stored in row-major order. 
    // row after row after row (next to each other) in one line in memory.
    
    for (int i = 0; i < length; i++) {
        printf("%3i", *(p + i));
    }
    
    return 0;
}
    
   
   
    
/*
run:
     
  5  3  8  0  9  2  4  1 96 45 17 23
   
*/

 



answered Dec 3, 2024 by avibootz

Related questions

1 answer 157 views
1 answer 168 views
168 views asked Jan 8, 2017 by avibootz
1 answer 140 views
140 views asked Jan 8, 2017 by avibootz
1 answer 100 views
2 answers 140 views
140 views asked Aug 14, 2024 by avibootz
1 answer 157 views
1 answer 166 views
...