✅ C++ new, delete로 동적 배열 만들기

#include <iostream>
#include <memory>

#define DEFAULT_SIZE (5)

int main() {
	//int arr[DEFAULT_SIZE]; 
	//위 배열은 프로그램 종료시까지 용량은 5이므로
	// 크기를 변경할수 있는 동적 배열을 만들어 보자.

	int* buf = new int[DEFAULT_SIZE]; // 5개짜리를 만들고,
	// 초기화
	//for (int i = 0; i < DEFAULT_SIZE; i++) {
	//	buf[i] = 0;
	//}
	memset(buf, 0, sizeof(int)*DEFAULT_SIZE);

	// 값 넣기
	buf[0] = 11;
	buf[4] = 55; // 값을 이리저리 넣고 볶고

	// 전체 출력해보기
	for (int i = 0; i < DEFAULT_SIZE; i++) {
		std::cout << buf[i] << ",";
	}
	std::cout << std::endl;

	delete[] buf;

	return 0;
}

✅ C++ 동적 배열 사이즈 변경하기

#include <iostream>
#include <memory>

#define DEFAULT_SIZE (5)
#define INC_SIZE (3)

int main() {
	//int arr[DEFAULT_SIZE]; 
	//위 배열은 프로그램 종료시까지 용량은 5이므로
	// 크기를 변경할수 있는 동적 배열을 만들어 보자.

	int* org_buf = new int[DEFAULT_SIZE]; // 5개짜리를 만들고,
	// 초기화
	//for (int i = 0; i < DEFAULT_SIZE; i++) {
	//	buf[i] = 0;
	//}
	memset(org_buf, 0, sizeof(int)*DEFAULT_SIZE);

	// 크기를 키워보자. 어떻게 키울까? 	// 솔류션은 정해져있다.
	// 기존 배열 org_arr 사이즈 5 + 추가분의 메모리 +3 = 총 8사이즈의 메모리 만들기
	// 메모리 0으로 초기화
	// ext_arr에 org 내용을 복사
	// 기존 org_arr 삭제
	// ext_memory 사용하기

	int* ext_buf = new int[DEFAULT_SIZE+INC_SIZE];
	memset(ext_buf, 0, sizeof(int) * (DEFAULT_SIZE + INC_SIZE));
	memcpy(ext_buf, org_buf, sizeof(int) * DEFAULT_SIZE);
	delete[] org_buf;

	ext_buf[0] = 11;
	ext_buf[1] = 22;
	ext_buf[2] = 33;
	ext_buf[3] = 44;
	ext_buf[4] = 55;
	*(ext_buf +5) = 66;
	ext_buf[6] = 77;
	ext_buf[7] = 88;

	// 전체 출력해보기
	for (int i = 0; i < DEFAULT_SIZE + INC_SIZE; i++) {
		std::cout << ext_buf[i] << ",";
	}
	std::cout << std::endl;

	delete[] ext_buf;

	return 0;
}