본문 바로가기

문과 코린이의, [C. C++] 기록/C++ 이론

[문과 코린이의 IT 기록장] C,C++ - new & delete (new & delete 사용방법 , new로 배열 할당하기)

반응형

 

[문과 코린이의 IT 기록장] C,C++ - new & delete (new & delete 사용방법 , new로 배열 할당하기)


[ 시작하기 전 ]

- 코딩에서 메모리를 관리하는 것은 매우 중요한 문제이다.

- 프로그램이 정확하게 실행되기 위해서는, 컴파일 시 모든 변수의 주소값이 확정되어야 한다.

- 이와 같은 현상을 만들기 위해서는 프로그램에 많은 제약이 따르기 때문에, 프로그램 실행 시에 자유롭게 할당하고 해제할 수 있는 힙(heap)이라는 공간이 새로 생겼다.

- 이 힙 상에서의 메모리 할당을 지원하기 위해, C++에서는 new & delete함수를 사용하고 있다.

 * new : 메모리 할당

 * delete : 메모리 해제


 

 

 1. new & delete 사용방법 

 

 

- int *p = new int; // int 크기의 공간을 할당하여, 그 주소값을 p에 집어넣는다.

- *p = 10; // p의 위치에 할당된 공간에, 10의 값을 넣는다.

delete p; // p에 할당된 공간이 해제된다. (new를 통해 힙에 할당한 공간만 해제)

 


 

 

 2. new로 배열 할당하기

 

 

- int *list = new int[arr_size]; // 포인터 변수 list에, new를 이용하여 크기가 arr_size인 int 배열을 생성한 주소를 넣었다.

- for(int i = 0 ; i < arr_size ; i++){
cin>>list[i];
}
  for(int i = 0 ; i<arr_size ; i++){
cout<< i << "the element of list : "<< list[i] <<endl;
}

// 위의 i와 아래의 i의 값이 다르다.

 

 - delete [] list; // new[]를 통해 할당한 것을 해제하는 것.

 


* 유의사항
- 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다.
- 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다.
- 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :)
반응형