컴공생의 다이어리

[c++] 메모리 할당과 해제 본문

Development/C & C++

[c++] 메모리 할당과 해제

컴공 K 2020. 12. 18. 00:40

C 언어에서는 malloc 과 free 함수를 지원하여 힙 상에서의 메모리 할당을 지원했다. C++에서도 마찬가지로 malloc 과 free 함수를 사용할 수 있다. 하지만 언어 차원에서 지원하는 것으로 바로 new 와 delete 라고 할 수 있다. new 는 말 그대로 malloc 과 대응되는 것으로 메모리를 할당하고 delete 는 free 에 대응되는 것으로 메모리를 해제한다.

/* new 와 delete 의 사용 */
int main() {
	int *p = new int;
	*p = 10;
	std::cout << *p << std::endl;
	delete p;
	return 0;
}

 

 

new로 배열 할당하기

int main() {
	int size;
	std::cout << "array size : ";
	std::cin >> size;
	int *list = new int[size];
	for (int i = 0; i < size; i++) {
		std::cin >> list[i];
	}
	for (int i = 0; i < size; i++) {
		std::cout << i << "th element of list : " << list[i] << std::endl;
	}
	delete[] list;
	return 0;
}
더보기

array size : 5
1
4
2
6
8
0th element of list : 1
1th element of list : 4
2th element of list : 2
3th element of list : 6
4th element of list : 8

배열을 할당하기 위해 size변수를 입력받고 list에 new를 이용해 크기가 size인 int 배열을 생성한다. 배열을 생성할 때는 []를 이용해 배열의 크기를 넣어주면 된다.

 

 

modoocode.com/312

 

씹어먹는 C++ 강좌 - PDF 파일

 

modoocode.com

 

728x90

'Development > C & C++' 카테고리의 다른 글

[c++] 함수의 오버로딩  (0) 2020.12.27
[c++] 객체, 클래스  (0) 2020.12.18
[c++] 배열의 레퍼런스  (0) 2020.12.17
[c++] 상수에 대한 참조자  (0) 2020.12.17
[c++] 함수 인자로 레퍼런스 받기  (0) 2020.12.17
Comments