ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어 calloc()
    Visual Studio/C 기초 2013. 9. 10. 22:49

    calloc() 함수도 malloc() 함수 처럼 메모리를 할당하는 함수입니다. 차이점은 malloc() 함수처럼 바이트 단위로 메모리를 할당하지 않고 어떤 데이터형을 단위로 해서 메모리를 할당합니다.

     

    void *calloc(size_t num, size_t size); 

    size_t는 대부분의 컴파일러에서 unsigned와 같은 뜻을 가집니다. 인수num은 특정 형태를 가지는 데이터의 개수이고 size는 바이트 단위로 표현되는 데이터의 크기입니다.

    메모리 할당이 성공적으로 수행되면 할당된 모든 메모리에는 0이 저장되어 정리되고, 함수는 첫 번째 바이트에 대한 포인터를 돌려줍니다.

    만약 메모리 할당에 실패하거나 num 또는 size의 값이 0이라면 함수는 NULL값을 돌려주게 됩니다. 예제를 보겠습니다.

     

    #include <stdio.h>
    #include <stdlib.h>

    main()
    {
     unsigned num;
     int *ptr;

     printf("int형으로 할당할 수를 입력하세요 : ");
     scanf("%d",&num);

     ptr = calloc(num, sizeof(int));

     if(ptr != NULL)
      puts("메모리 할당이 성공적으로 이루어졌습니다.\n");
     else
      puts("메모리 할당에 실패하였습니다.\n");

     if(ptr !=NULL)
      free(ptr);

     

     

    'Visual Studio > C 기초' 카테고리의 다른 글

    C언어 free()  (0) 2013.09.13
    C언어 realloc()  (0) 2013.09.11
    C언어 malloc()  (0) 2013.09.06
    C언어 qsort(), bsearch()  (0) 2013.09.01
    C언어 시간 처리 함수  (0) 2013.09.01

    댓글

Designed by Tistory.