본문 바로가기
카테고리 없음

C++ 3. New,delete

by sooom13579 2022. 4. 26.

C언어에서는 malloc , free 함수를 지원하여 힙 상에서의 메모리 할당을 지원, C++ 에서도 지원 가능

그러나 언어차원에서 지원은 new, delete임 

이번엔 이걸 써봅시다!!!!!

 

힙(heap)

스택(stack)

 

/* new 와 delete 의 사용 */
#include <iostream>

int main() {
  int* p = new int;
  *p = 10;

  std::cout << *p << std::endl;

  delete p;
  return 0;
}
int* p = new int;

// int 크기의 공간을 할당하여 그 주소값을 p 에 집어 넣었음!

 

New 사용하는 방법

T* pointer = new T;

New 사용

/* new 로 배열 할당하기 */

#include <iostream>

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