성균관대 C프로그래밍-동적메모리할당2
- 최초 등록일
- 2014.04.23
- 최종 저작일
- 2012.04
- 18페이지/ MS 워드
- 가격 1,500원
목차
1. 실습내용
2. 실습목적
3. 과제 해결방안
4. 코드분석
5. 실행결과
6. 결론
7. Appendix. 전체 코드
본문내용
1. 실습내용
동적 메모리 할당 및 포인터를 이용하여 프로그램을 만든다.
학생의 수와 그 학생들의 각각의 국어, 영어, 수학 점수를 입력 받는다. 그 학생의 모든 과목의 총점 및 평균, 각 과목에 대한 모든 학생들의 총점 및 평균을 구하여 출력한다.
2. 실습목적
① 포인터와 더블포인터의 역할 및 사용방법을 이해한다.
② 동적 메모리 할당을 이용해 메모리 할당을 하고 해제를 하는 법을 이해한다
<중 략>
tSub = (int*)malloc(4*sizeof(int));
총점을 저장할 배열의 메모리를 동적 할당해준다. 이 배열에는 국어, 영어, 수학 점수의 총점과 모든 학생들의 총점, 이렇게 4개의 값이 저장되므로 이만큼의 메모리가 필요하다. 그러므로 4*sizeof(int)만큼의 크기로 메모리 할당을 해준다.
aveSub = (double*)malloc(4*sizeof(double));
평균을 저장할 배열의 메모리를 동적 할당해준다. 이 배열에는 국어, 영어, 수학 점수의 총점의 평균과 모든 학생들의 총점의 평균, 이렇게 4개의 값이 저장되므로 이만큼의 메모리가 필요하다. 그러므로 4*sizeof(double)만큼의 크기로 메모리 할당을 해준다. 이 때, 평균값은 소수점이 나올 수 있으므로 int형이 아닌 double형으로 선언을 해주는 것이다.
for(i=0 ; i<num ; i++) pScore[i] = (int*)malloc(5*sizeof(int));
학생의 정보를 저장할 배열의 메모리를 동적 할당해준다. 위의 pScore 그림에서 학생의 정보들이 입력되어 있는 배열을 선언하는 것이다. 이 배열에는 Number, 국어, 영어, 수학의 점수, 총점, 이렇게 5개의 값이 저장되므로 이만큼의 메모리가 필요하다. 따라서 5*sizeof(int)만큼의 크기로 메모리 할당을 해준다. 이 배열은 사람의 수만큼 할당이 되어야 하므로 for문을 이용해 사람의 수만큼 이와 같은 배열을 할당해주도록 한다.
참고 자료
없음