#include <iostream>

using namespace std;

int main()
{
	int *a = new int(5);
	메모리상에 int하나 저장하는 공간이 만들어져. 거기에 5라는 값이 들어가고. 근데 얘는 이름이 없어. 결국 주소값을 반환해 new를통해
	주소값 넘겨주게되면 그 포인터가 그 주소값을 받아.a라는 포인터에 200이라는값이 들어가면서 생성된 메모리를 가리키게됨
	
	cout << *a << endl;
	이렇게 역참조해서 값을 볼수있음.
	
	*a = 10;
	이렇게하면 값을 바꿀수도있고.

	delete a;
	메모리에 공간 할당했잖아. 해제 해줘야 리크발생하지 않겠지.
}
int arr[1000]; 이건 정적으로 할당한거징 스택에 생길거고
동적으로 할당하고싶어. 내가 원할때 할당하고 원할때 삭제하고

#include <iostream>
using namespace std;

int main() {
	int *arr;
	int len;

	cout << "동적할당 배열 길이 입력 : ";
	cin >> len;
	arr = new int[len];

	for (int i = 0; i < len; i++) {
		arr[i] = len - i;
	}
	for (int i = 0; i < len ; i++) {
		cout << arr[i] << endl;
	}
	
	delete[] arr;
}

arr[0]의 주소값, 즉, &arr[0]는 arr와 같다.

같은 int *a 라도 배열을 받았으면 삭제할때 delete[]를 해야함!