동적메모리 할당 예제

컴퓨터가 변수를 만드는 방법은 무엇입니까? 우리가 뭔가를 만들 생각 할 때, 우리는 매우 처음부터 뭔가를 만드는 생각, 이것은 컴퓨터가 변수 `X`를 만들 때 실제로 일어나는 일이 아니다 동안; 컴퓨터에, 더 할당처럼, 컴퓨터는 X에 기존의 메모리 셀의 많은에서 메모리 셀을 할당합니다. `RAJESH`라는 이름의 누군가가 많은 무료 또는 빈 기존 객실에서 호텔 방에 할당되는 것과 같습니다. 이 예제는 컴퓨터가 메모리 할당을 수행하는 방법을 매우 분명하게 만들었을 것입니다. 또한, 지정된 크기의 배열은 연속적인 메모리 블록에 할당되고, 각 블록은 하나의 요소에 대한 크기를 가지며, 상기 이루어진 배열의 길이(size)가 9임을 알 수 있다. 그러나이 길이 (크기)를 변경해야합니다. 예를 들어 이 배열에 5개의 요소만 입력해야 하는 상황이 있는 경우 이 경우 나머지 4개의 인덱스는 이 배열의 메모리를 낭비하고 있습니다. 따라서 배열의 길이(크기)를 9에서 5로 줄이도록 요구됩니다. Malloc 함수는 단일 메모리 블록의 메모리 공간을 할당하는 데 사용되며 calloc 함수는 여러 메모리 블록의 메모리 공간을 할당하는 데 사용됩니다. calloc 함수에 의해 할당된 각 블록은 크기가 동일합니다. C 프로그래밍 언어는 메모리를 정적으로, 자동으로 또는 동적으로 관리합니다. 정적 지속 시간 변수는 일반적으로 프로그램의 실행 코드와 함께 주 메모리에 할당되고 프로그램의 수명 동안 유지됩니다. 자동 지속 시간 변수는 스택에 할당되고 함수가 호출되고 반환될 때 오고 갑니다. 정적 지속 시간 및 자동 지속 시간 변수의 경우 할당 크기는 컴파일 타임 상수여야 합니다(가변 길이 자동 배열의 경우 제외[5]).

런타임까지 필요한 크기를 알 수 없는 경우(예: 임의의 크기의 데이터가 사용자 또는 디스크 파일에서 읽히는 경우) 고정 크기 데이터 개체를 사용하는 것은 적절하지 않습니다. 메모리 관리의 구현은 운영 체제 및 아키텍처에 크게 좌우됩니다. 일부 운영 체제는 malloc에 대한 할당기를 제공하지만 다른 운영 체제는 특정 데이터 영역을 제어하는 기능을 제공합니다. 동일한 동적 메모리 할당자는 종종 Malloc및 운영자를 C++에서 새 새 구현에 사용됩니다. [11] “calloc” 또는 “연속 할당” 메서드는 지정된 형식의 지정된 수의 메모리 블록을 동적으로 할당하는 데 사용됩니다. 각 블록을 기본값 `0`으로 초기화합니다. C는 이러한 작업을 달성하기 위한 몇 가지 기능을 제공합니다. C 프로그래밍에서 동적 메모리 할당을 용이하게하기 위해 헤더 파일 아래에 정의 된 C에서 제공하는 4 개의 라이브러리 함수가 있습니다.

Este post foi publicado em Sem categoria em por .