sotter1020   5년 전

Rotate함수와 notSupervisedSpace라는 함수에 memcpy부분이 이상합니다.

연구소문제 풀 때도, 어떨떄는 deepcopy되었다가 어떨때는 shallow copy되었다가 하는데

이유를 잘 모르겠습니다.

물론 계속 코드보다 보니까 몇개 수정해야 할 게 있는데 여기서 문제이다보니 힘드네요..

for문 2개로 copy하는데 안정적일까요? 원래 memcpy가 이런가요?

djm03178   5년 전

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년 전

와우! 감사합니다!! 그런문제가 있었네요!

댓글을 작성하려면 로그인해야 합니다.