dreamian   2년 전

안녕하세요, 모르는 부분이 있어 질문드립니다.

보통 1차원 배열은 함수 인자로 받기 어려워 포인터를 이용해 간접 참조가 가능하다고 알고 있습니다.

그리고 int형 배열의 경우 strlen을 이용해서 배열의 길이를 알기 어려워 sizeof(arr)/sizeof(int)로 배열 길이를 확인하는 것으로 알고 있습니다.

문제는 소스를 깔끔하게 처리하기 위해 함수 인자로 배열만 받아 함수 내에서 배열의 길이를 계산하고 싶은데 어떻게 구현해야 할지 감이 안 잡힙니다.

djm03178   2년 전

언어적으로 불가능합니다. 반드시 그 길이를 알려주는 추가 정보가 필요합니다.

dreamian   2년 전

항상 감사합니다 ㅎㅎ

4rchive_7   2년 전

위에 분 답변이 맞습니다.

뭐 굳이 인자를 많이 쓰는것이 싫다면 배열[0]에 길이에 대한 정보를 넣어두는 것도 나쁘진 않겠군요.


하지만 언어적 한계이기 때문에 불가능합니다

dreamian   2년 전

답변 감사합니다! 불가능한 것이었군요 ㅠㅠ

djm03178   2년 전

단순히 추가 인자를 넘기지 않는 것이 목적이라면 윗분 말씀대로 0번째에 길이 정보를 담거나, 배열의 끝에 끝을 나타내는 값 하나를 정해서 넣어줘도 됩니다. 마치 문자열의 끝을 널 문자가 나타내듯이요.

dreamian   2년 전

항상 많은 도움을 받고 있습니다. 감사합니다!

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