수강평
틀린 내용이 너무 많음
초반부터 틀린 내용이 너무 많다 보니, 그 이후부터는 강의 내용이 사실인지 따로 검증해야 되고
내가 강의를 듣는 건지 오류 검수를 하는건지 헷갈리는 지경에 이르게 됨
특히 Array 는 Compile 단계에서 메모리 할당이 발생한다는 부분에서 기염을 토함
그게 또 Stack memory 영역에 할당된다 는 것도 웃음 포인트
이 강의를 듣고 면접관분들께 큰 웃음 주셨을 많은 수강생 분들께 심심한 위로를 전하며
저와 같은 추가적인 피해자가 발생하지 않기를 바라는 마음으로 수강평 남겨둡니다.
추가.
댓글에 강사님께서 아래와 같이 남겨주셨는데요.
이 노션의 내용도 틀렸음을 알려드립니다.
https://midi-mandolin-36f.notion.site/Array-33d866e5193f49789dd2079c75412f96?pvs=4
"C언어" 에서 "Static Array" 는 프로세스의 데이터 영역(Stack, Data, Heap) 중 어느 곳이든 저장될 수 있으며, 그것은 개발자의 개발 의도(코드)에 따라 달라집니다.
// 코드로는 아래와 같습니다.
int[5]; // Data 영역에 저장
int main() {
int[5]; // Stack 영역에 저장
int* arr = (int*)malloc(5 * sizeof(int)); // Heap 영역에 저장
// 메모리를 동적으로 할당했을뿐 배열 자체는 Static Array 입니다.
}
만약
"C언어의 Static array는 compile 단계에서 stack메모리에 할당된다."
라는 명제가 참이라면,
"C언어의 int형 변수는 compile 단계에서 stack메모리에 할당된다."
라는 명제 역시 동일한 메커니즘이기 때문에 참 입니다.
"주사위를 던지면 3이 나옵니다. 1, 2, 4, 5, 6 은 예외입니다."
라는 설명이 맞는지
"주사위를 던지면 나오는 숫자는 1~6사이의 숫자가 랜덤하게 나옵니다."
라는 설명이 맞는지는 수강생 분들께서 판단하시면 되시겠습니다.
추가.
강사님이 어느새 노션을 또 수정해두셨는데요.
노션 내용의 논리대로면, 자바에서는 Array 뿐만 아니라 모든 자료구조가 Heap에 저장됩니다.
그 아래 교수님 답변이라는건... 무슨 주장을 하고 싶으신건지 모르겠네요.
[특정 자료구조와 빌드 단계, 프로세스 메모리 영역 할당은 관련이 없다] 가 맞습니다.
C언어 기준에서 1, 2, 3번으로 잘 적어주셨는데, 왜 결론은 뜬금 없이
[C언어 기준으로 보면 array는 compile 단계에서 stack영역에 할당]
으로 나오는지 모르겠네요.
아무튼 다들 고생이 많으십니다.