안녕하세요.
c로 대형 배열들을 다수 사용하는 프로그램을 만들고 있습니다.
크기가 sizeof(double)*100000이 넘는 배열들을 2-30개 사용하기 때문에
기본적으로 malloc을 이용하고 있는데요
임시적인 목적으로 중간 중간 함수에서 포인터 변수 double *a등을 정의해 사용하면
자꾸 세그먼트 폴트가 납니다만, 이 변수를 double *a = malloc(sizeof(double))로 바꿔주면
다시 프로그램이 잘 돌아가는 것으로 보아 스택오버플로우인것 같습니다.
모든 포인터를 malloc으로 쓰고 있기 때문에 스택은 쓰고 있지 않습니다만, 포인터 변수 한개를 스택에
넣으면 오버플로우가 나는 이유가 무엇인지 궁금합니다.
1) kldp에 올라온 관련 질문들을 읽으며 생각해보았습니다만,
이하와 같은 메모리 구조가