-
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