[C++] 동적 메모리 할당 예제 new delete
[C++] 동적 메모리 할당 예제 new delete
변수와 배열을 동적으로 할당하고 해제할 수 있다.
동적으로 할당한 변수는 반드시 해제해줘야 한다.
함수에서 선언된 변수는 함수가 종료되면서 같이 자동으로 해제되지만,
동적으로 할당한 변수는 해제되지 않고 직접 해제해줘야 한다.
new : 변수 동적 할당
delete : 동적 할당 변수 해제
new[] : 배열 동적 할당
delete[] : 동적 할당 배열 해제
#include <iostream> using namespace std; int main(){ // int 타입 동적 메모리 할당 int* p = new int; *p = 337; cout << *p << endl; // 메모리 해제 delete p; p=NULL; // 배열 동적 메모리 할당 int length = 10; int* q = new int[length]; q[0] = 4; cout << q[0] << endl; // 배열 메모리 해제 delete[] q; q=NULL; return 0; } |
delete를 이용해 메모리를 해제하면, 해당 포인터 변수를 NULL로 초기화 해줘야 한다.
delete가 되어도 포인터 변수에는 기존의 주소를 가지고 있어, 다른 곳에서 잘못 사용될 수 있다.
출처: https://hyeonstorage.tistory.com/301?category=601868 [개발이 하고 싶어요]
'기타 > C++' 카테고리의 다른 글
[C++] string 문자열을 배열에 복사하기 (0) | 2019.07.27 |
---|---|
[C++] 문자열 합치기 strcat(), 문자열 비교 strcmp() (0) | 2019.07.27 |
[C++] 문자열 길이 strlen(), 문자열 복사 strcpy() (0) | 2019.07.27 |
[C++] 문자열 뒤집기 예제 (0) | 2019.07.27 |
[C++] 10진수를 2진수로 변환 예제 (0) | 2019.07.27 |
[C++] 두 점 사이의 거리 구하기 pow(), sqrt() (0) | 2019.07.27 |
[C++] 포인터와 레퍼런스 인자(Parameter)의 비교 (0) | 2019.07.27 |
[C++] 팩토리얼 구하기 예제 (0) | 2019.07.27 |