✅ 목표 (Goal)

객체를 스택, 힙 어디에 만드는게 좋을까?

✅ Java는 객체 생성시 (메모리 세그먼트) 어디에 만들지 고민을 안해도 된다.

다른 언어는 메모리에 변수,객체 생성시 스택인지 힙인지 고민을 안해도 된다.

예를 들면 Java는 아래와 같이 만들면 된다.

알아서 Heap에 만들어 주고, 나중에 알아서 GC(Garbage Colletor)가 제거해 준다.

Student student= new Studnet("david"); 

✅ C는 어디에 만들어야 할까?

C/C++은 스택과 힙 선택지가 2개 있어서 고민이 된다.

(1) 처럼 stack에 만들어야 하나?

(2) 처럼 heap에다 만들어야 하나?

typedef sturct _student_t {
	char name[32];
	int age;
} student_t;

int main() {
	student_t s1= {"david", 33}; // (1)
	student_t s2= malloc(sizeof(student_t)); //(2)
}

✅ 가급적 힙에다 만들지 마

힙을 써야할 특별한 이유가 없다면, 굳이 힙을 사용하지 않는 것이 좋다.