Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,855 questions

51,776 answers

573 users

How to print 2D array (matrix) using pointers in C

4 Answers

0 votes
#include <stdio.h>

#define ROWS 2
#define COLS 3
  
void print_matrix(int (*matrix)[COLS], int rows, int cols) {
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            printf("%2i", *(*(matrix + i) + j));
        }
        printf("\n");
    }
}
   
int main() {
    int matrix[ROWS][COLS] = {{5, 3, 8}, {9, 2, 4}};
 
    print_matrix(matrix, ROWS, COLS);
}
   
  
  
   
/*
run:
    
 5 3 8
 9 2 4
  
*/

 



answered Apr 4, 2019 by avibootz
0 votes
#include <stdio.h>

#define ROWS 2
#define COLS 3
  
void print_matrix(int (*matrix)[COLS], int rows, int cols) {
    int *p = &matrix[0][0];
  
    for (int i = 0; i < ROWS * COLS; i++) {
        printf("%2i", *(p + i));
    }
    printf("\n");
}
   
int main() {
    int matrix[ROWS][COLS] = {{5, 3, 8}, {9, 2, 4}};
 
    print_matrix(matrix, ROWS, COLS);
}
   
  
  
   
/*
run:
    
 5 3 8 9 2 4
  
*/

 



answered Apr 4, 2019 by avibootz
0 votes
#include <stdio.h>
 
int main(void)
{
    char arr[3][3] = { {'1','2','3'},
                       {'4','5','6'},
                       {'7','8','9'}};
 
    char* p = *arr;   
 
    for (int i = 0; i < 9; ++i)
        printf("%c\n", *(p + i));
 
    return 0;
}
 
 
 
/*
run:
 
1
2
3
4
5
6
7
8
9
 
*/

 



answered Feb 21, 2023 by avibootz
0 votes
#include <stdio.h>

int main(void)
{
    char arr[3][3] = { {'1','2','3'},
                       {'4','5','6'},
                       {'7','8','9'}};

    char* p = *arr;   

    for (int i = 0; i < 9; ++i)
        printf("%c\n", *(*arr + i));

    return 0;
}



/*
run:

1
2
3
4
5
6
7
8
9

*/

 



answered Feb 21, 2023 by avibootz
...