Entry * entries = (Entry *)malloc(sizeof(Entry) * 100001);
Entry entries[100001];
위 두 문은 메모리 할당이 스택 영역에 일어나느냐 힙 영역에 일어나느냐 빼고는 차이가 없잖아?
그런데 아래는 세그멘테이션 폴트가 뜨고 위에 건 잘 되더라고..
그래서 뭐가 잘못되었길래 두 개가 차이가 나는지 궁금해서 질문글 써봄
참고로 Entry는 int형 변수 두 개하고 char [100]형 배열 하나를 가진 구조체임.
너무 커서
스택은 크기제한이 빡세다 자세한건 가상메모리공간과 메모리매핑을 살펴봐 힙은 메모리매핑만 허용된다면 너가 수동관리해주면 사용에 문제될건 없지만 스택같은경우는 너무 커지면 영역을 침범함 걔들의 공간적위치를 생각해보셈
힙은 큰 메모리는 아예 자유로운곳에 매핑해줌