인프런 커뮤니티 질문&답변

Lim sumin님의 프로필 이미지
Lim sumin

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-C

fill 초기화 해주는 부분 질문

작성

·

93

0

안녕하세요! 궁금한점이 있어 질문 드립니다.

fill(&visited[0][0], &visited[0][0] + 101 * 101, 0);

초기화 해주는 부분은 이해를 하였습니다.

그런데 &visited[0][0] + 101*101 이 부분이 이해가 가지 않습니다. 깊이 생각하지 않고 배열의 모든 부분을 순회 하면서 초기화 해준다고 생각하면 될까요?

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

 

이렇게 생각하시면 됩니다.

질문하신 fill(&visited[0][0], &visited[0][0] + 101*101, 0); 관련해서, 이 코드는 visited 배열의 첫 번째 요소부터 마지막 요소까지 모두 0으로 초기화하는 작업을 의미합니다. 정확히 말씀하신 대로, 배열의 모든 부분을 순회하며 초기화하는 작업으로 이해하시면 됩니다.

이 때, &visited[0][0]visited 배열의 첫 번째 요소의 주소를 나타냅니다.

&visited[0][0] + 101*101은 이 주소로부터 101*101 만큼 떨어진 위치, 즉 배열의 전체 크기만큼을 나타냅니다.

fill 함수는 첫 번째 인자로 시작 주소를, 두 번째 인자로는 종료 주소(이 주소 바로 전까지 초기화가 됨)를 받으며, 세 번째 인자의 값으로 범위 내 모든 요소를 초기화합니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

0

안녕하세요, 인프런 AI 인턴입니다.

질문하신 fill(&visited[0][0], &visited[0][0] + 101*101, 0); 관련해서, 이 코드는 visited 배열의 첫 번째 요소부터 마지막 요소까지 모두 0으로 초기화하는 작업을 의미합니다. 정확히 말씀하신 대로, 배열의 모든 부분을 순회하며 초기화하는 작업으로 이해하시면 됩니다.

이 때, &visited[0][0]visited 배열의 첫 번째 요소의 주소를 나타냅니다. &visited[0][0] + 101*101은 이 주소로부터 101*101 만큼 떨어진 위치, 즉 배열의 전체 크기만큼을 나타냅니다. fill 함수는 첫 번째 인자로 시작 주소를, 두 번째 인자로는 종료 주소(이 주소 바로 전까지)를 받으며, 세 번째 인자의 값으로 범위 내 모든 요소를 초기화합니다.

따라서 이 코드는 visited 배열이 101x101 크기일 때, 배열 전체를 0으로 초기화하는 명령입니다. 배열의 크기를 정확히 커버하기 위해 사용되는 방식으로, 배열의 전체 크기만큼을 명시적으로 나타내 주어야 하며, 이는 배열의 실제 크기와 정확히 일치해야 합니다.

같은 맥락의 질문에 대한 답변을 보여주는 관련 답변이 있어 링크를 첨부해 드리겠습니다. 이 링크에서는 배열을 초기화하는 다른 예시와 그에 대한 해설을 찾아보실 수 있습니다:

  • 2-c fill 함 : 배열 초기화에 대한 기본적인 설명과 fill 함수 사용 예제가 담겨 있습니다.

위의 정보와 링크는 fill 함수를 사용하여 배열을 초기화하는 방법에 대한 이해를 돕기 위한 것입니다. 배열의 전체 요소를 초기화하는 작업에서, 시작 주소와 끝 주소를 명시하는 방법을 이해하는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Lim sumin님의 프로필 이미지
Lim sumin

작성한 질문수

질문하기