2015-01-16 3 views
-3

C#의 정적 및 동적 차이를 명확히 알고 싶습니다. 다른 블로그에 많은 게시물을 보았지만 답변에 만족하지 않았습니다.데이터 구조에서 정적 및 동적의 차이점

명확하게 설명해주십시오.

+3

정적 또는 동적? 어느 언어? 이것은 특정한 코딩 질문입니까 아니면 일반적인 호기심입니까? 지금 서서 귀하의 질문에 답할 수 없습니다. – Tommy

+0

일반적인 호기심 –

답변

0

이러한 용어는 특정 상황에 따라 여러 가지 방법으로 사용됩니다. 그러나 일반적으로 정적 인은 초기에 지정되었거나 프로그램에 하드 코딩 된 것으로 쉽게 변경되지는 않습니다. 동적 인은 즉시 업데이트되도록 의도 된 것을 말합니다. C에서 예를 들어

, 당신은 같은 배열을 선언하는 경우 :

int arr[100]; 

를 배열의 크기가 정적 인 : 항상 100 개 요소입니다. 이 같은 매크로를 사용하더라도 :

int arr[SIZE]; 

당신은 매크로 정의를 업데이트하고 배열의 크기를 변경하는 프로그램을 다시 컴파일해야합니다. 컴파일러는 어레이를 고정 할 고정 된 메모리 블록을 따로 보관할 것입니다. 지역 변수 인 경우 함수의 스택 프레임에 메모리를 할당합니다. 전역 변수 인 경우 BSS 세그먼트의 프로그램 시작시 할당됩니다 (특정 세부 사항은 구현에 따라 다르지만 이것은 일반적인 방법). 한편

은 다음을 사용할 경우 :

int *arr = malloc(n * sizeof(int)); 

어레이의 크기는 동적이다 - 프로그램 입력과 다른 상태에 의존 할 수있는 가변 n의 현재 값에 의존한다. 배열의 크기를 변경하려면 realloc()을 사용할 수도 있습니다.

+0

메모리가 정적 및 동적으로 할당되는 방법은 무엇입니까? –

관련 문제