컴공생의 다이어리
[c++] 메모리 할당과 해제 본문
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 배열을 생성한다. 배열을 생성할 때는 []를 이용해 배열의 크기를 넣어주면 된다.
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