1.동적 메모리 할당
new는 런타임에 메모리를 요청하고, 요청한 메모리의 시작 주소를 반환합니다.
int* p = new int; // 단일 정수형 메모리 할당
*p = 5; // 할당된 메모리 공간에 값 저장
int* arr = new int[5]; // 정수형 배열 메모리 할당
for (int i = 0; i < 5; ++i) {
arr[i] = i * 10; // 배열에 값 저장
}
for (int i = 0; i < 5; ++i) {
std::cout << arr[i] << " "; // 배열 출력
}
std::cout << std::endl;
2.동적 메모리 해제
delete는 new로 할당된 메모리를 해제하며,
delete[]는 new[]로 할당된 배열 메모리를 해제합니다.
int* p = new int; // 메모리 할당
delete p; // 메모리 해제
int* arr = new int[10]; // 배열 메모리 할당
delete[] arr; // 배열 메모리 해제
3.메모리 누수
메모리 누수는 할당된 메모리를 해제하지 않아서 발생하는 문제입니다.
이는 프로그램이 종료되기 전까지 메모리를 계속 차지하게 만듭니다.
'Language > C++' 카테고리의 다른 글
[C++] Namespace (0) | 2024.08.01 |
---|---|
[C++] 함수 (0) | 2024.08.01 |
[C++] 반복문 (0) | 2024.08.01 |