c - How to connect a concrete 2D array to a previously defined pointer to a pointer in a header file? -
i trying implement checkers game. have use given header file contains #defines , statements. 1 of them is:
typedef char** board_t;
i understand pointer pointer char i.e that:
**board_t = board_t[0][0]
in checkers.c file implementing methods board 2d array input.
in of them i'm interested in changing board want insert using pointer.
considering header typedef, ok define board way:
char board_t [board_size][board_size];
and use in method :
void init_board(board_t){...}
in writing passing on pointer defined 2d array?
if so, how approach board[i][j]
using pointer in method?
if did this:
typedef char** board_t;
then, declare , allocate memory like:
int i; board_t arr = malloc(board_size * sizeof(char *)); for(i = 0; < board_size; i++) arr[i] = malloc(board_size * sizeof(char));
for function defined like:
void init_board(board_t arr){...}
pass on like:
init_board(arr);
some points note:
- if have used
typedef
aliasing pointer type, cannot have array-like declaration (where specify 2 index sizes) of newly created type name. must declare , allocate memory pointers. - in function
init_board
can treat parameterarr
2-d array, , refer valuesarr[row][col]
.
Comments
Post a Comment