3. Value
• 가장 일반적인 객체(값)의 생성
• 생성된 영역의 스택 메모리 공간에 할당
• 생성 영역에서 벗어나면 메모리에서 자동 해제
• 함수안의 지역 변수 -> 함수가 반환되면 메모리 해제
• 클래스 멤버 변수 -> 클래스가 소멸되면 같이 해제
• 전역 변수 -> 프로그램이 종료될 때 해제
함수의 인자나, 배열에 대입할 때, 값의 복사(Copy)가 일어 난다
8. Value(값) 복사 결과
partyMember[3]
soeun
0 CCharacter
1 CCharacter
2 CCharacter
wonHyo
jinSang
값만 복사(COPY) 했을 뿐, 서로간에 아무런 관계가 없다
서로는 완전히 별개의 객체이다.
총 객체의 개수 = 6개
12. Pointer
전역 힙(Heap) 메모리 공간에 동적 생성
영역을 벗어나도 해제 되지 않는다
• 포인터 변수의 실제 값은 할당된 메모리의 시작 주소
• 할당된 메모리를 해제하지 않을 경우, 메모리 누수(Leak)가 발생한다
함수의 인자나, 배열에 대입할 때, 실제 메모리 주소만을 복사한다.
15. Value vs Pointer
VS
Value
Pointer
실제 데이터의 복사
참조 주소를 복사
일반 데이터 타입
포인터
타겟과 원본이 각각 별도의 메모
리 공간을 차지함
타겟과 원본이 같은 메모리 주소
를 참조함
원본이 사라져도 관계 없음
원본 데이터가 사라지면, 포인터
는 모두 무효 포인터가 된다.