calloc

```c

void *calloc(size_t nmemb, size_t size);

```

결과적으로 할당되는 크기는 ``c nmemb * size`` bytes다.


어차피 0으로 초기화 할거면, ``c malloc() + memset()`` 보다 ``c calloc()``을 사용하는게 더 빠르다. 

kernel이 memory를 제공하기 전에 zero로 만들고 제공할 수 있기 때문.


malloc wrapper

```c

/* like malloc(), but terminates on failure */

void * xmalloc(size_t size){

    void *p;

    p = malloc(size);

    if (!p) {

        perror("xmalloc");

        exit(EXIT_FAILURE);

    }

    return p;

}

```


'Languages & Frameworks > C C++' 카테고리의 다른 글

[C/C++] define, inline, const, enum, enum class  (0) 2017.09.04
[C] the end of the address space check  (0) 2017.07.27
[C++] Namespace 네임스페이스  (0) 2017.06.15
exec 계열 함수  (0) 2017.05.01
fork - exec / wait +clone  (0) 2017.05.01