문제 :
정수 공간 5개를 배열로 동적 할당받고, 정수를 5개 입력받아 평균을 구하고 출력한 뒤 배열을 소멸시키도록 main() 함수를 작성하라.
목적 및 힌트 :
배열의 동적 할당 및 반환
실행 결과 :
코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include<iostream>
using namespace std;
int main() {
int *p = new int[5];
double sum = 0;
cout << "정수 5개 입력>>";
for(int i=0; i<5; i++) {
cin >> p[i];
sum += p[i];
}
cout << "평균 " << sum/5;
delete [] p;
}
|
설명 :
배열을 동적 할당하여 사용 및 반환하는 문제입니다.
메모리를 동적으로 할당받아 사용한 후에는 꼭 delete를 해주는 습관을 기르는 게 좋습니다.
delete를 하지 않을경우 자신도 모르는 사이에 메모리 누수(Memory Leak) 현상이 생길 수 있습니다.
또한 메모리를 delete 한다고 하여도 포인터는 살아있으므로 접근하지 않도록 주의해야 합니다.
이때 해제된 메모리 영역을 여전히 가르키고 있는 포인터를 댕글링 포인터(Dangling Pointer)라고 합니다.
'C++ programming' 카테고리의 다른 글
명품 C++ programming 실습 문제 4장 4번 (5) | 2020.03.04 |
---|---|
명품 C++ programming 실습 문제 4장 3번 (1) | 2020.03.04 |
명품 C++ programming 실습 문제 4장 1번 (1) | 2020.03.04 |
명품 C++ programming 실습 문제 3장 12번 (2) | 2020.03.03 |
명품 C++ programming 실습 문제 3장 11번 (1) | 2020.03.03 |