EXAMPLE이 포함된 C 라이브러리의 malloc() 함수

C에서 malloc이 뭔가요?

malloc() 함수는 메모리 할당을 나타냅니다. 메모리 블록을 동적으로 할당하는 데 사용되는 함수입니다. 지정된 크기의 메모리 공간을 예약하고 메모리 위치를 가리키는 널 포인터를 반환합니다. 반환된 포인터는 일반적으로 void 유형입니다. 이는 모든 포인터에 malloc 함수를 할당할 수 있음을 의미합니다.

통사론

ptr = (cast_type *) malloc (byte_size);

여기

  • ptr은 Cast_type의 포인터입니다.
  • malloc 함수는 byte_size의 할당된 메모리에 대한 포인터를 반환합니다.
Example: ptr = (int *) malloc (50)

이 명령문이 성공적으로 실행되면 50바이트의 메모리 공간이 예약됩니다. 예약된 공간의 첫 번째 바이트의 주소는 int 유형의 포인터 ptr에 할당됩니다.

malloc 구현의 또 다른 예를 고려해보세요:

#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
    if (ptr != NULL) {
      *(ptr + 5) = 480; /* assign 480 to sixth integer */
      printf("Value of the 6th integer is %d",*(ptr + 5));
    }
}

출력:

Value of the 6th integer is 480

C에서 malloc이란 무엇인가?

  1. 그것을주의해라 크기(*ptr) 대신에 사용되었습니다 크기(정수) *ptr 선언이 다른 데이터 유형으로 변환될 때 코드를 더욱 강력하게 만들기 위해 later.
  2. 메모리가 충분하지 않으면 할당이 실패할 수 있습니다. 이 경우 NULL 포인터를 반환합니다. 따라서 NULL 포인터를 확인하는 코드를 포함해야 합니다.
  3. 할당된 메모리는 연속적이며 배열로 처리될 수 있다는 점을 명심하세요. 포인터 연산을 사용하여 배열 요소에 액세스하는 대신 포인터 연산을 사용할 수 있습니다. brackets [ ]. 증분 ++ 또는 +=를 사용하면 저장된 주소가 변경되므로 +를 사용하여 배열 요소를 참조하는 것이 좋습니다. 포인터.

Malloc 함수는 com뿐만 아니라 문자 데이터 유형에도 사용할 수 있습니다.plex 구조와 같은 데이터 유형.