인프런 커뮤니티 질문&답변

czcz9207님의 프로필 이미지
czcz9207

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

46. 멀티 태스킹

동적 할당 정적할당

작성

·

281

0

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

답변 2

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

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

0

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

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

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

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

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

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

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

czcz9207님의 프로필 이미지
czcz9207

작성한 질문수

질문하기