• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

동적 할당 정적할당

21.08.04 01:53 작성 조회수 187

0

선생님의 풀이를 보면 매우 큰 배열 일때는 동적할당을 하고 100정도의 작은 배열에서는 정적할당을 하시던데 1000정도의 애매한 크기에서는 정적으로 선언할 떄도 있고 정적으로 선언할 떄도 있네요. 그리고 어떨 때는 전역으로 선언하고 어떤떄는 지역으로 선언하시던데 혹시 그 기준이 있으신가요?

답변 2

·

답변을 작성해보세요.

0

안녕하세요^^

윗분 답변대로 입니다. 앞으로는 그냥 vector 로 동적할당해서 사용하는게 제일 좋습니다.

0

­이준호님의 프로필

­이준호

2021.08.05

크기에 따라 동적할당을 이용할 지 선택하는건 코딩테스트(P.S)에서 중요한건 아닌거 같아요.

물론 C로 개발하게 된다면 중요한 문제가 될 수 있겠지만요.

C++에서는 stl::vector를 사용하시면 첫번째 고민은 해결되실 것 같고

배열을 전역으로 선언할 때 stack영역이 아닌 data 영역에 생성되기 때문에 훨씬 큰 용량을 가질 수 있어요.

main함수 안에 배열을 선언했을 때 배열의 크기가 크면 stack overflow가 발생하는 걸로 알고 있어요.

추가로 전역 영역에 배열을 선언하면 자동으로 초기화를 시켜주기 때문에 의도치 못한 쓰레기값도 피할 수 있어요.

저도 프로그래밍을 접한지 얼마 안되서 정확한 내용이 아닐 수 도 있지만 아는 내용 답글 달아봅니다