Skip to content

Instantly share code, notes, and snippets.

@surinoel
Created November 13, 2019 07:23
Show Gist options
  • Save surinoel/4bffacabe45e60ae40edd5ea451e3887 to your computer and use it in GitHub Desktop.
Save surinoel/4bffacabe45e60ae40edd5ea451e3887 to your computer and use it in GitHub Desktop.
#include <stdio.h>
void init_arr(int (*arr)[2]) {
int i, j, cnt = 1;
for(i=0; i<3; i++) {
for(j=0; j<2; j++) {
arr[i][j] = cnt++;
}
}
}
void print_arr(int (*arr)[2]) {
int i, j;
for(i=0; i<3; i++) {
for(j=0; j<2; j++) {
printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);
}
}
}
void init_pnt_arr(int **pnt_arr, int (*arr)[2]) {
int i;
for(i=0; i<3; i++) {
pnt_arr[i] = arr[i];
}
}
void test_arr_pnt(int (*p)[3]) {
int i, j;
for(i=0; i<2; i++) {
for(j=0; j<3; j++) {
printf("p[%d][%d] = %d\n", i, j, p[i][j]);
}
}
}
void test_arr_func(int (*p)[2]) {
printf("**p = %d\n", **p);
printf("*(*p+1) = %d\n", *(*p+1));
printf("*(*p+3) = %d\n", *(*p+3));
printf("**(p+1) = %d\n", **(p+1));
printf("**(p+2) = %d\n", **(p+2));
}
void test_p_func(int (*p)[3]) {
printf("**p = %d\n", **p);
printf("*(*p+1) = %d\n", *(*p+1));
printf("*(*p+2) = %d\n", *(*p+2));
printf("**(p+1) = %d\n", **(p+1));
printf("*(*(p+1)+2) = %d\n", *(*(p+1)+2));
}
int main(void) {
int i;
int arr[3][2] = {0};
int *pnt_arr[3] = {0}; // 포인터 배열
int (*p)[3] = NULL; // 배열 포인터
init_arr(arr);
print_arr(arr);
init_pnt_arr(pnt_arr, arr);
for(i=0; i<3; i++) {
printf("*pnt_arr[%d] = %d\n", i, *pnt_arr[i]);
}
p = arr;
test_arr_pnt(p);
test_arr_func(arr);
test_p_func(p);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment