Interesting.... do go on.
Code:
#include<stdio.h>
#include<stdlib.h>
typedef char t_board[5][4];
t_board *copy (t_board b) {
int i, j;
t_board *ptr;
ptr = malloc (sizeof(*ptr));
for (i=0; i<5; i++)
for (j=0; j<4; j++)
(*ptr)[i][j] = b[i][j];
return ptr;
}
int main () {
int i,j;
t_board some_board = {
{ 1, 2, 3, 4 },
{ 11, 12, 13, 14 },
{ 21, 22, 23, 24 },
{ 31, 32, 33, 34 },
{ 41, 42, 43, 44 },
};
t_board *new_board;
new_board = copy(some_board);
for ( i = 0 ; i < 5 ; i++ ) {
for ( j = 0 ; j < 4 ; j++ ) {
printf("%2d ", some_board[i][j] );
}
printf("\n");
}
for ( i = 0 ; i < 5 ; i++ ) {
for ( j = 0 ; j < 4 ; j++ ) {
printf("%2d ", (*new_board)[i][j] );
}
printf("\n");
}
free(new_board);
return 0;
}
$ gcc -Wall bar.c
$ ./a.out
1 2 3 4
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
1 2 3 4
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44