[C] 2차원 배열 함수의 매개변수로 보내는 방법2015. 9. 11. 21:42
많이 사용하는 2차원 배열을 함수로 보내는 방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> void prn(int a[][4], int size); void main() { int arr[3][4]; prn(arr, sizeof(arr)/sizeof(int)); } void prn(int a[][4], int size) { printf("%d \n", a[1][1]); } \ | cs |
3x4 크기의 배열을 arr[3][4] 로 선언하였습니다
13열의
void prn(int a[][4], int size)
이 부분을 보시면 a[][4]로 적혀있습니다
즉, 함수로 이동시킬때에는 2번째 배열크기는 변경하실 수 없습니다
앞의 [3] 부분은 변경할 수 있습니다
왜냐하면 arr[3][4] 의 의미는
3개의 배열이 각각 4개의 배열을 가리킨다는 의미이기 때문입니다
그림으로 이해하면
이런 의미입니다!!!!
그러니까 가로로 누운 배열 부분은 변경할 수 있지만
그 배열들이 각각 가리키는 배열은 [4] 로 정해져있기 때문에
변경이 안됩니다
그래서 함수로 2차원 배열을 보낼때에는 2번째 배열의 크기는 상수로 명시해줘야
그에 해당하는 2차원 배열을 인자로 보낼 수 있습니다.
'Language > C++' 카테고리의 다른 글
[C] 디버깅 중 출력화면에 변수 출력하기 (0) | 2015.09.25 |
---|---|
[C++] 메세지 패싱 (0) | 2015.09.17 |
[C++] 싱글톤에 대한 정리 (0) | 2015.09.02 |
[C++] 함수로 주소값 전달하는 방법 (0) | 2015.08.25 |
문자열을 입력받고, 문자의 빈도수 계산하여 출력하기 (0) | 2015.05.29 |