이유 설명: C에서는 array를 하나의 first-class object 로 다루지 못하고 array의 첫 번째 element 의 위치를 지정하는 pointer 로 다룸. 따라서 sum[i] = a[i] + b[i]; 라고 그냥 때리면 sum 어레이가 저장되어 있는 메모리 값에 "a 어레이 메모리 주소값 + b 어레이 메모리 주소값" 이 들어가게 됨. 물론 이 주소값이 가리키는 부분에 제대로 된 데이터가 들어 있을 리가 없기 때문에 garbage 값 (이상한 숫자) 가 튀어나오게 됨. 해결책은 for문을 돌려서 어레이의 element 하나 하나씩을 직접 더해주는 것.
for (int i=0; i<length; i++) { sum[i] = a[i] + b[i]; }
이유 설명: C에서는 array를 하나의 first-class object 로 다루지 못하고 array의 첫 번째 element 의 위치를 지정하는 pointer 로 다룸. 따라서 sum[i] = a[i] + b[i]; 라고 그냥 때리면 sum 어레이가 저장되어 있는 메모리 값에 "a 어레이 메모리 주소값 + b 어레이 메모리 주소값" 이 들어가게 됨. 물론 이 주소값이 가리키는 부분에 제대로 된 데이터가 들어 있을 리가 없기 때문에 garbage 값 (이상한 숫자) 가 튀어나오게 됨. 해결책은 for문을 돌려서 어레이의 element 하나 하나씩을 직접 더해주는 것.
감사합니다 교수님이 집필한 책인데 그런 내용은 도저히 못봐서요 감사합니다