program096   3년 전

아래와 같은 코드의 동적할당 부분을 전역변수나 지역변수로 배열을 할당해주면 런타임에러(segfault)가 일어나지 않습니다.

상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)를 입력받아서 동적으로 배열을 할당해주는게 왜 문제가 되는지

잘 모르겠습니다. 주석처리한 부분처럼 arr[500000]한것과 상근이가 가지고 있는 숫자가 카드의 개수가 N=500000일 경우 동적할당

한 배열과 정적할당한 배열 모두 arr[500000]일텐데 왜 동적할당한 배열에서 문제가 일어나는 건가요?...

답변해주신다면 감사하겠습니다.

dldyddlwl   3년 전

.

dldyddlwl   3년 전

찾아보니

int(100)은

The first line allocates a single int and initializes it to 100. Think of the int(100) as a constructor call. 이라고 하네요.

즉 인트 하나만 생성하고, 그걸 100으로 초기화하는거라네요

program096   3년 전

아 할당을 []로 안하고 제가 ()로 해놨네요.. 예제 출력은 잘 되서 이상함을 못느꼈나봐요!

답변 감사드립니다!

댓글을 작성하려면 로그인해야 합니다.