fill()함수

말차·2022년 8월 6일

🌼지식🌼

목록 보기
2/10

referenced from this blog and this blog

초기화가 제대로 되지 않아 이 문제를 1시간 넘게 보았다ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

1️⃣ 차원 배열 초기화 using fill()

int arr[50];
    
fill(arr, arr+50, 5);

arr의 시작주소부터 50을 더한 주소까지 0으로 초기화

2️⃣ 차원 배열 초기화 using fill()

1차원 배열과 동일하다.
두번째 parameter는 포함되지 않는 주소를 넣는다는 것을 잊으면 안된다.

int	arr[50][50]

일때 초기화는

fill(arr[0], arr[50], 0)

이다. arr[0]은 arr의 시작주소이다. 그리고 arr[50]은 arr[49][49]까지의 주소를 포함하고 있다.

처음에 제출한 코드에서 49를 50까지만 바꾸어도 맞았을건데..ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ눈물

3️⃣ 차원 배열 초기화 using fill()

int arr[10][10][10]

이라는 배열이 존재할 때, 처음에 fill(arr[0], arr[10], 0)으로 2차원처럼 똑같이 해주면 되는거 아닌가...싶었는데 응 아니다. 3차원 배열은

fill(arr[0][0], arr[10][0], 0)

혹은

fill((int *)arr, (int *)(arr + 10), 0)

이런 식으로 해야 한다.

0개의 댓글