sizeof(target)은 안타깝게도 sizeof(int)*9*9가 아닙니다. 함수의 파라미터에 쓰이는 []은 실제로 배열을 만드는 것이 아니고 그냥 포인터입니다.
int target[9][9]에서 뒤쪽의 9는 target[i]가 9개의 int로 이루어져 있음을 알려서 컴파일러가 적절한 포인터 연산을 수행할 수 있게 해주는 것입니다. 앞쪽의 9는 아예 의미가 없고 가독성을 위해서만 쓸 뿐입니다. int target[][9]라고 해도 동일합니다.
실제로 sizeof(target)을 출력해보시면 환경에 따라서 4 또는 8이 출력됨을 알 수 있습니다.
sotter1020 5년 전
Rotate함수와 notSupervisedSpace라는 함수에 memcpy부분이 이상합니다.
연구소문제 풀 때도, 어떨떄는 deepcopy되었다가 어떨때는 shallow copy되었다가 하는데
이유를 잘 모르겠습니다.
물론 계속 코드보다 보니까 몇개 수정해야 할 게 있는데 여기서 문제이다보니 힘드네요..
for문 2개로 copy하는데 안정적일까요? 원래 memcpy가 이런가요?