Free 함수가 있는 C의 여유 메모리

Free Memory C With Free Function



C 언어는 메모리 관리를 처리하기에 충분히 효율적입니다. 이는 C에서 데이터 유형의 일반 변수를 선언할 때마다 프로그램이 성공적으로 실행되면 프로그래밍 언어 자체가 이 메모리를 할당 해제하거나 해제하는 책임이 있음을 의미합니다. 그러나 동적 메모리 할당의 경우 메모리를 수동으로 할당하므로 스스로 해제해야 합니다.

stdlib.h 라이브러리에는 이러한 목적을 위한 전용 함수, 즉 free() 함수가 있습니다. 오늘, 우리는 C 프로그래밍 언어에서 이 함수를 사용해야 할 필요성을 탐구할 것입니다. 그런 다음 Linux의 C 프로그래밍 언어에서 이 함수를 사용하여 메모리를 수동으로 해제한 몇 가지 예를 살펴보겠습니다.







시스템 메모리를 확보하기 위해 C에서 Free 기능을 사용해야 하는 경우:

우리 모두는 컴퓨터 시스템의 메모리가 제한되어 있기 때문에 무한한 프로그램을 실행할 수 없다는 것을 알고 있습니다. 자동 메모리 할당의 경우 프로그램 실행이 완료되면 컴퓨터가 메모리 해제를 처리합니다. 그러나 힙에서 수동으로 메모리를 할당할 때 어떤 식으로든 메모리를 해제해야 합니다.



그렇지 않으면 결국 메모리가 부족해져서 프로그램을 더 이상 실행하지 않을 것입니다. 여기에서 stdlib.h 라이브러리의 free() 함수가 작동합니다. 프로그램 종료 직전에 이 함수를 사용하여 프로그램이 종료되기 전에 컴퓨터 시스템에 힙 메모리가 반환되도록 합니다.



특히 동적 메모리 할당을 대상으로 하는 C 코드를 작성하는 동안 이 기능을 계속 무시한다고 가정합니다. 이 경우 메모리가 부족하여 힙에 더 이상 액세스할 수 없는 시점이 올 것입니다. 그렇기 때문에 동적으로 메모리 할당을 담당할 때마다 이 덜 가치 있어 보이는 기능을 절대 잊어서는 안 됩니다.





C 프로그래밍 언어에서 free() 함수의 일반적인 구문은 다음과 같습니다.

무효의무료 (무효의*ptr)

여기에서 free() 함수 앞의 void 키워드는 이 함수의 반환 유형이 void임을 나타냅니다. 대괄호 안의 포인터는 할당을 해제해야 하는 메모리 위치에 해당합니다. 다음 섹션에서는 C에서 획득한 동적 메모리를 해제하기 위해 free() 함수가 사용된 몇 가지 예를 설명합니다.



C에서 자유 함수를 사용하는 예:

free() 함수는 stdlib.h 라이브러리의 세 가지 메모리 할당 함수, 즉 malloc, calloc 및 realloc 모두와 함께 사용할 수 있습니다. 프로그램 실행 시 동적으로 할당한 힙 메모리를 컴퓨터 시스템으로 다시 넘겨주기 위해서는 프로그램의 기본 기능을 설명한 후 이 기능을 반드시 사용해야 합니다. 이제 free() 함수가 C 프로그래밍 언어에서 malloc 및 calloc 함수와 함께 사용된 몇 가지 예를 살펴보겠습니다.

예제 # 1: C에서 calloc과 함께 Free 함수 사용:

calloc() 함수와 함께 free() 함수를 사용하기 위한 C 코드는 아래 이미지에서 공유되었습니다.

이 코드의 기본 목적은 calloc() 함수의 도움으로 일부 메모리를 동적으로 할당하는 것입니다. 이를 위해 동적 메모리의 크기와 이 동적 메모리의 값을 사용자의 입력으로 취했습니다. 그런 다음 획득한 값을 터미널에 인쇄하려고 했습니다. 이 전체 코드 뒤에는 C 프로그램 실행으로 인해 할당된 동적 메모리를 해제하는 free() 함수가 있습니다.

동일한 코드의 약간 수정된 버전이 아래에 인용된 이미지에도 표시됩니다.

이 수정된 버전은 수동 초기화 전에 동적으로 할당된 메모리 값을 인쇄하기 위한 것입니다. calloc() 함수는 구현이 발생하기 전에 전체 메모리를 0으로 초기화한다는 것을 알고 있습니다. 그러나 이 코드에서 여기에서 주목해야 할 요점은 이 코드가 매우 간결하고 간단하지만 원하는 기능이 달성된 후에는 우리가 가지고 있던 힙 메모리를 해제하기 위해 free() 함수를 계속 사용했다는 것입니다. 이 C 프로그램을 실행한 결과 획득했습니다.

예제 # 2: C에서 malloc과 함께 Free 함수 사용:

malloc() 함수와 함께 free() 함수를 사용하기 위한 C 코드는 아래 첨부된 이미지에서 공유되었습니다.

이 코드의 기본 목적은 malloc() 함수의 도움으로 일부 메모리를 동적으로 할당하는 것입니다. 이를 위해 for 루프에서 이 동적 메모리의 값을 할당했습니다. 그런 다음 다른 for 루프를 사용하여 획득한 값을 터미널에 인쇄하려고 했습니다. 이 전체 코드 다음에는 C 프로그램 실행의 결과로 할당된 동적 메모리를 단순히 해제하는 return 문 바로 앞에 free() 함수가 있습니다.

결론:

이 기사는 Linux의 C 프로그래밍 언어에서 free() 함수를 사용하는 것의 중요성을 강조했습니다. 대부분의 사용자는 stdlib.h 파일의 할당 기능이 더 중요하다고 생각합니다. 그러나 이 기사를 통해 free() 함수가 똑같이 중요하다는 것을 분명히 알 수 있습니다. 동적으로 획득한 메모리를 해제하고 나중에 프로그램을 실행하려고 할 때마다 메모리가 부족하지 않도록 합니다.