Game !



많이 사용하는 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차원 배열을 인자로 보낼 수 있습니다.