ReloacteArr();
원하는 만큼의 바이트 수를 요청을 하고 힙 메모리 영역 어딘가에
내가 요청한 사이즈 만큼 (단위는 바이트) 할당된 메모리 공간의 주소를 받는다.
그런데 이 동작에서 내가 원하는 곳의 주소를 할당 받을 수 있나?
이런거 정의 가능? => ㄴㄴ. 없다.
지금 무슨 경우냐면 '0'하나 잘못 붙여서 힙메모리의 어떤 다른 공간(중요한) 부분에 데이터를 건드릴 수 있다.
(CPP는 이런거 관여 안함)
비엔나 소세지마냥 이렇게 늘리는거 가능?
(되긴 할거같음..)
그래서 처음에 동적 할당을 받을 경우, 충분히 넉넉한 공간을 잡아 주어야한다.
지금 이렇게 2칸 다 차면 arrMaxCount 2 (sizeof(int)) 만큼
malloc으로 새로운 힙 메모리 공간 할당 받은 상황이다.
그런데 malloc이 return한 주소값을 어떻게 할 것인가??
pInt가 새로운 주소를 할당 받게 됨.
이런식으로 가능.
지금 main.cpp에서는 RelocateArr함수를 호출할 수 있다.
=> 의도한 바는 아니지만 그냥 호출해서 크기를 늘릴 수 있음.
이럴경우 지금 이 함수는 arr.h에 선언이 되있기 때문에 가능한데
지금 Arrary.cpp에서 선언 및 구현이 되어있어서
이런경우를 막고 싶다면 굳이 arr.h에 선언되어있는
이부분 없애도 노상관임.
그러면
이렇게 선언되어있지 않아서 호출 못함.
데이터를 계속해서 확장하면서 넣는 과정을 가변배열이라 한다.
함수 호출 할 경우 헤더와 cpp파일 분리 (보안?)
Reloacte함수에서 arrCount, arrMaxCount의 대소 유무