>  기사  >  백엔드 개발  >  C 언어에서 Calloc이란 무엇입니까?

C 언어에서 Calloc이란 무엇입니까?

王林
王林앞으로
2023-09-10 19:45:021786검색

C 라이브러리 메모리 할당 함수 void *calloc(size_t nitems, size_t size)는 요청된 메모리를 할당하고 이에 대한 포인터를 반환합니다.

malloc과 calloc의 차이점은 malloc은 메모리를 0으로 설정하지 않는 반면 calloc은 할당된 메모리를 0으로 설정한다는 것입니다.

메모리 할당 기능

메모리는 아래 설명과 같이 두 가지 방법으로 할당할 수 있습니다. -

컴파일 타임에 메모리를 할당한 후에는 실행 중에 변경할 수 없습니다. 메모리가 부족하거나 낭비되는 문제가 발생합니다.

해결책은 메모리를 동적으로 생성하는 것입니다. 즉, 프로그램 실행 중에 사용자 요구 사항에 따라 메모리를 생성하는 것입니다.

동적 메모리 관리를 위한 표준 라이브러리 함수는 다음과 같습니다. -

  • malloc( )
  • calloc( )
  • realloc( )
  • free( )

Calloc( ) 함수

  • 이 함수는 사용 런타임에 연속적인 메모리 블록을 할당합니다.

  • 이것은 배열용으로 특별히 설계되었습니다.

  • 할당된 메모리의 기본 주소를 가리키는 void 포인터를 반환합니다.

calloc() 함수 구문은 다음과 같습니다. -

void *calloc ( numbers of elements, size in bytes)

Example

다음 예제는 calloc() 함수의 사용법을 보여줍니다.

int *ptr;
ptr = (int * ) calloc (500,2);

여기서는 2바이트 크기의 메모리 블록 500개가 연속적으로 할당됩니다. 할당된 총 메모리 = 1000바이트.

C 언어에서 Calloc이란 무엇입니까?

int *ptr;
ptr = (int * ) calloc (n, sizeof (int));

샘플 프로그램

다음은 동적 메모리 할당 함수 Calloc을 사용하여 요소 집합에서 짝수와 홀수의 합을 계산하는 C 프로그램입니다.

온라인 데모

#include<stdio.h>
#include<stdlib.h>
void main(){
   //Declaring variables, pointers//
   int i,n;
   int *p;
   int even=0,odd=0;
   //Declaring base address p using Calloc//
   p = (int * ) calloc (n, sizeof (int));
   //Reading number of elements//
   printf("Enter the number of elements : ");
   scanf("%d",&n);
   /*Printing O/p -
   We have to use if statement because we have to check if memory
   has been successfully allocated/reserved or not*/
   if (p==NULL){
      printf("Memory not available");
      exit(0);
   }
   //Storing elements into location using for loop//
   printf("The elements are : </p><p>");
   for(i=0;i<n;i++){
      scanf("%d",p+i);
   }
   for(i=0;i<n;i++){
      if(*(p+i)%2==0){
         even=even+*(p+i);
      } else {
         odd=odd+*(p+i);
      }
   }
   printf("The sum of even numbers is : %d</p><p>",even);
   printf("The sum of odd numbers is : %d</p><p>",odd);
}

Output

위 프로그램을 실행하면 다음과 같은 결과가 나옵니다 -

Enter the number of elements : 4
The elements are :
12
56
23
10
The sum of even numbers is : 78
The sum of odd numbers is : 23

위 내용은 C 언어에서 Calloc이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제