[프로그래밍2 및 실습] 4) 동적메모리할당/문자열/헤더파일과구현파일 - 숭실대학교
- 최초 등록일
- 2021.10.01
- 최종 저작일
- 2019.09
- 8페이지/ 어도비 PDF
- 가격 1,500원
소개글
[프로그래밍2 및 실습] - 중간고사, 1학년 2학기 / 정리
* 별표가 표시된 보라색 글씨 부분은 수업을 들으면서 교수님의 추가 설명을 필기한 것
목차
1. 동적 메모리 할당
2. 문자열
3. 헤더파일과 구현파일
본문내용
<동적 메모리할당>
*왜 사용하는가? -정적인 메모리 할당
1) 프로그램을 실행하기 전에 메모리를 얼마나 쓸 것인지 결정이 끝난상태
정적-> 프로그램 시작하기 전에 고민.. 잘 모르겠다~ 100개 잡아두자! 하다가 넘으면 망함
예) 100명의 학생정보, 학번 저장하는 배열 만듦, 100개의 공간을 잡아놓고 시작하는 것
2) 함수가 시작될 때 메모리 할당, 종료되면 메모리 해제
3) 메모리가 함수가 끝나면 함수가 사라지니 메모리도 사라짐
4) 프로그래머가 그 시점을 결정할 수 없음, 프로그램이 결정
-동적인 메모리 할당
1) 프로그램을 실행하는 중에 메모리를 할당하는 것
동적-> 200개가 입력되려고 하네? 그럼 200개 담을 수 있는 공간 만들자. 예) 프로그램 실행하는 중에, 필요한 개수만큼 잡아서 할당(중간에)
2) 메모리는 계속 남아있기 때문에 메모리의 사용이 끝나면 반드시 해제를 해주어야함
3) 메모리라는 배를 하나더 띄우는 것. 함수가 종료되도 메모리는 계속 남아있음
안그러면 메모리 유수 -> 메모리가 계속 늘어나 정리가 잘 안됨 -> 메모리 깎아먹게됨
4) 프로그래머가 메모리를 할당하는 시점하고 해제하는 시점을 결정할 수 있음
<기본적인 동적 메모리 할당과 해제(1)>
*사용자에게 입력받은 정수의 합과 평균을 구하는 예
int size;
cout << "몇 개의 정수를 입력하시겠소? ";
cin >> size;
int *arr = new int [size]; // 필요한 만큼의 메모리를 할당한다. cout << "정수를 입력하시오.\n";
for (int i = 0; i < size; ++i)
cin >> arr[i];
int sum = 0; // 평균을 계산하고 출력한다. for (i = 0; i < size; ++i)
sum += arr[i];
참고 자료
없음