정적 배열과 동적 배열의 기본 개념을 이해합니다. 이 두 가지의 주요 차이점은 컴파일 타임에 메모리를 할당하는 정적 배열과 런타임에 메모리를 할당하는 것입니다. 그러나 우리는 크기가 사용자 입력 값이 될 정적 배열을 만들 수 있습니다.동적 배열 및 정적 배열 컴파일 시간 또는 런타임?
int value ;
cin >> value ;
int array [value] ;
int i = 0 ;
while(i < value)
{
cin >> array[i] ;
i ++ ;
}
따라서 프로그램은 런타임까지이 배열의 크기를 알지 못합니다. 정적 배열과 동적 배열의 실제 근본적인 차이점은 무엇입니까? 정적 배열을 사용하여 런타임에 공간을 할당 할 수 있습니까?
또한 배열의 크기 조정 가능성에 대해 이야기합니다. 동적 배열을 확장하기 위해 요소를 새로운 이중 크기 동적 배열에 복사 한 후 이전 배열을 삭제할 수 있습니다. 우리는 정적 배열에서도 똑같이 할 수 있습니까? [그러나 원래 배열은이 경우 삭제할 수 없으며 중복 스택 공간을 사용합니다. IS가이 유일한 차이점입니다.
"원시"배열은 동적이 아니며 (크기는 변경되지 않음) 동적으로 할당 될 수 있습니다. 'std :: vector'는 동적이며 (런타임에 크기를 조정할 수 있습니다)이 경우 사용해야합니다. – crashmstr
VLA는 표준 C++가 아닙니다. 그것은 연장입니다. – Jarod42
_ 시간에 컴파일 할 때 메모리가 할당되지 않습니다. –