2018. 7. 25. 02:14
728x90

아래와 같은 소스를 실행하였을 때 화면에 출력되는 값은 무엇인가.

즉, *(*(pptr_int_array+3)+2) 에 해당하는 값은 무엇인가.


int i = 0, j = 0, value = 0;

int row = 4, col = 5;


int **pptr_int_array = (int **)malloc(sizeof(int *) * row);

for (i = 0; i < row; i++) {

pptr_int_array[i] = (int *)malloc(sizeof(int) * col);

}


for (i = 0; i<row; i++) {

for (j = 0; j<col; j++) {

value++;

pptr_int_array[i][j] = value;

}

}


printf("%d\n", *(*(pptr_int_array + 3) + 2));




답은 18

값을 대입하기 전에 value++;를 하였으므로 최초 입력 값은 1

pptr_int_array[3][2]에 저장이 되므로 col이 5개짜리인 row를 3번 거친 후의 3번째 배열이므로 18번째 배열이다. 

따라서 화면에 출력되는 값을 18이다. 



728x90
Posted by 아야카