구조체 동적할당 예제

따라서 동적 메모리 할당은 런타임 중에 데이터 구조(예: Array)의 크기가 변경되는 프로시저로 정의할 수 있습니다. 이 프로그램에서우리는 학생 세부 사항과 구조를 만들고 입력 된 세부 사항을 인쇄합니다. 저장 및 인쇄 구조에 대한 메모리는 malloc()를 사용하여 런타임에 할당되고 free()로 해제됩니다. C 프로그래밍 언어의 동적 메모리 할당 – C 언어는 이 기능을 사용하여 동적 메모리를 사용하여 런타임에 메모리 할당 또는 재할당이 필요할 때마다 런타임에 메모리를 관리할 수 있는 메모리 를 수동으로 관리하는 기능을 제공합니다. 할당 함수는 필요한 메모리의 양을 만들 수 있습니다. „calloc” 또는 „연속 할당” 메서드는 지정된 형식의 지정된 수의 메모리 블록을 동적으로 할당하는 데 사용됩니다. 각 블록을 기본값 `0`으로 초기화합니다. C는 구조화 된 언어이므로 프로그래밍에 대한 몇 가지 고정 된 규칙이 있습니다. 그 중 하나는 배열의 크기를 변경 포함. 배열은 연속 메모리 위치에 저장된 항목의 컬렉션입니다.

상기 배열의 길이(size)가 9임을 확인할 수 있다. 그러나이 길이 (크기)를 변경해야합니다. 예를 들어 이 배열에 5개의 요소만 입력해야 하는 상황이 있는 경우 이 경우 나머지 4개의 인덱스는 이 배열의 메모리를 낭비하고 있습니다. 따라서 배열의 길이(크기)를 9에서 5로 줄이도록 요구됩니다. 우리는 포인터를 논의하고 우리는 동적 메모리를 사용하여 배열의 간단한 할당을 보았다. malloc(코스를 통해 사용할)은 반환 포인터가 모든 데이터 구조에 „캐스팅”될 수 있도록 „void에 대한 포인터”(void *)를 반환합니다. 다음은 크롤러와 관련된 샘플 코드를 사용하고 사전, DNODE 및 URLNODE를 포함한 몇 가지 중요한 데이터 구조에 메모리를 할당합니다. 이 시점에서 이러한 구조의 의미를 모른다는 것을 걱정하지 마십시오. 당신은 그들과 매우 친숙해질 것입니다. 아래 프로그램은 malloc을 사용하여 사용자 입력 n을 기반으로 정수 배열을 동적으로 만듭니다.

이 프로그램은 메모리를 할당하고 18에서 -9 사이에 배율이 지정된 임의의 정수로 채우고 배열을 표시하고 메모리를 해제합니다. 그것은 영원히이 작업을 수행합니다. malloc()는 구조체에 메모리를 할당하는 데도 자주 사용됩니다. „realloc” 또는 „재할당” 메서드는 이전에 할당된 메모리의 메모리 할당을 동적으로 변경하는 데 사용됩니다. 즉, malloc 또는 calloc의 도움으로 이전에 할당된 메모리가 충분하지 않은 경우 realloc을 사용하여 메모리를 동적으로 다시 할당할 수 있습니다. 동적으로 할당된 구조체를 사용하여 완료한 후 무료로 해제할 수 있습니다. 이 항목에서는 C의 개념을 아래에서 배울 수 있습니다.