2013-02-25 2 views
2

실제로 수동으로 저장소를 할당해야하는 이유는 무엇입니까?스토리지 할당이 필요한 이유는 무엇입니까?

제가 생각할 수있는 유일한 작업은 32 비트 정수에 맞지 않는 더 큰 바이너리 데이터 일 것입니다.

이 정보가 맞습니까? 다른 사용 사례는 무엇입니까?

+0

컴파일 시간에 동적 할당을 사용하는 데 필요한 크기를 알 수없는 경우 –

+0

수동 저장소 할당은 무엇을 의미합니까? 'malloc'은 자동 스토리지와 정적 스토리지가 아닌? – delnan

+0

동적 메모리를 사용하는 데는 다음과 같은 이유가 있습니다. [** 동적 메모리 할당 **의 장점] (http://www.technoplaza.net/programming/lesson6.php) 및 [** 강의 6 : 동적 메모리 할당 ** ] (http://www.technoplaza.net/programming/lesson6.php) –

답변

2

일반적으로 컴파일 할 때 데이터 크기를 알 수 없을 때마다 수동 저장소 할당을 수행해야합니다.

    파일/네트워크/사용자 입력 등, 해당 데이터의 정확한 금액에서 데이터를 읽을해야합니다 프로그램을 컴파일 타임에 알려져 있지 않다
  • , 또는
  • 여러분의 프로그램을 수행해야합니다 거의 모든 상황은 두 가지 범주로 분류 출력을 생성하고 저장하며, 프로그램을 작성할 때 그 출력의 정확한 양을 알지 못합니다.

많은 일반적인 데이터 구조는 정확한 크기가 런타임에 결정될 때 임의의 크기의 메모리를 할당 할 수 있다고 가정합니다. 이렇게하면 프로그램의 저장 요구가 처리하는 데이터 및 시간의 양에 따라 데이터 구조가 동적으로 "확장"및 "축소"할 수 있습니다.

+0

메모리를 동적으로 할당하면 런타임 중에 메모리를 할당 할 수있을뿐 아니라 마음대로 자유롭게 사용할 수 있으므로 메모리 사용량을 낮게 유지할 수 있습니다. 필요 없어. 또한 함수 반환시 자동 변수가 파괴되므로 정적 데이터를 사용하여 스택 위로 전달할 수 있습니다. –

0

많은 수의 예제. 구조체를 채우기 위해 메모리를 할당합니다 (예 : 연결된 목록 구조체).

관련 문제