언어/C++

[C/C++] 메모리 동적할당

0802ojw 2023. 12. 10. 23:56

[C]

#include <stdio.h>
#include<malloc.h>

int main() {

	int* ptr = (int*)malloc(sizeof(ptr));

	free(ptr); // 사용 후 free 필수

}

사용후에는 free로 할당한 메모리를 해제하는것이 필수이다

 

 

 

[C++]

#include <iostream>
using namespace std;

int main() {
	//메모리 동적할당 해보기
	int* ptr = new int; //메모리를 OS로 부터 가져온다

	cout << ptr << endl; // 주솟값이 나온다
	cout << *ptr << endl; // null 이 나올것이다. -> 실제론 쓰레깃값이 나왔다.

	delete ptr; //메모리를 OS에 다시 반납한다.
	ptr = nullptr; //포인터 변수에 계속해서 남아있는 메모리 주소를 null을 가리키게 한다.

	return 0;
}

메모리 누수를 방지하기 위해선 delete를 꼭 해주어야 한다