산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

예제가 있는 C 라이브러리의 malloc() 함수

C에서 malloc이란 무엇입니까?

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

구문

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

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

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


C 언어

  1. EXAMPLE이 있는 C++ Switch Case 문
  2. 예제를 사용한 C++ 배열 동적 할당
  3. 예제가 있는 C++ 포인터
  4. 예제를 사용한 C++ 연산자 오버로딩
  5. 예제가 있는 C++ 구조체
  6. 인쇄 예제가 있는 C++ 표준 템플릿 라이브러리(STL)의 맵
  7. 예제가 있는 C++의 std::list
  8. 프로그램 예제가 있는 C++ 함수
  9. 프로그램 예제가 있는 C 라이브러리의 calloc() 함수
  10. C 라이브러리의 realloc() 함수:어떻게 사용합니까? 구문 및 예