인프런 커뮤니티 질문&답변

최성락님의 프로필 이미지
최성락

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.16 다차원 배열을 함수에게 전달해주는 방법

왜 함수에서 넣어야하는 변수가 2개인데 이중포인터가 아닌 그냥 포인터인지 모르겠습니다.

작성

·

156

0

왜 함수에서 넣어야하는 변수가 2개인데 이중포인터가 아닌 그냥 포인터인지 모르겠습니다.

int sum2d_3(int* ar, int row, int col)

{

int tot = 0;

for (int r = 0; r < row; r++)

for (int c = 0; c < col; c++)

tot += *(ar + c + col * r);

return tot;

}

이 함수를 보면 row와 col 두개를 변수로 가지고있는데 이러면 2차원 배열이랑 비슷한 개념이므로 이중포인터로 해야하는거 아닌가요? 왜 단일 포인터로 하는지 모르겠습니다..

답변 2

0

그렇다면 본 강의의 코드중

sum2d_2( int ar[][COLS], int row) 

의 ar은 2차원 배열이 맞나요?

0

홍정모님의 프로필 이미지
홍정모
지식공유자

이것도 중요한 개념인데 1차원 배열을 2차원 배열처럼 사용하는 방법입니다. pointer operation 부분을 유심히 보시길 바랍니다. 

tot += *(ar + c + col * r);

최성락님의 프로필 이미지
최성락

작성한 질문수

질문하기