힙이랑 스택이랑 같은 영역을 서로 반대 지점부터 쓴다고 알고 있는데,
500000*21 크기의 char형 배열을 지역적으로 선언하면 메모리 부족하다고 빌드 실패하고
21 크기의 char형 배열을 멤버로 가지는 구조체로, 500000 크기의 구조체 배열을 동적으로 할당하면 얘는 OK를 해줘
같은 곳 쓰는데 후자는 어떻게 성공하는거야..?
500000*21 크기의 char형 배열을 지역적으로 선언하면 메모리 부족하다고 빌드 실패하고
21 크기의 char형 배열을 멤버로 가지는 구조체로, 500000 크기의 구조체 배열을 동적으로 할당하면 얘는 OK를 해줘
같은 곳 쓰는데 후자는 어떻게 성공하는거야..?
같은 영역 아닌 걸로 아는데
언어랑 ide 뭐야? ide 설정에서 stack 크기랑 heap 크기 설정할 수 있어. 메모리 크기, stack 크기, heap 크기 다 따로야 (정확하겐 메모리를 총 얼만큼 쓸 수 있는데, 거기에서 스택으로는 X만큼 제한한다. 의 느낌)
스택에 지역 변수 들어가고 힙에 전역 변수 들어가고 그런 식이었을걸. 근데 보통 VS에서는 스택을 존나 짜게 잡아줘서 백준에선 되는데 VS에선 안 되는 경우가 많다고 알고 있음. 그래서 보통 큰 배열 선언할때는 전역 변수로 선언해주더라.
visual studio c++ 기준으로 아마 기본 스택크기가 1mb로 설정되어 있을거야 전자는 스택쓰고 후자는 동적할당이기 때문에 힙씀