diff --git a/liba/include/stdlib.h b/liba/include/stdlib.h index 0b487b74b..6cf0a9654 100644 --- a/liba/include/stdlib.h +++ b/liba/include/stdlib.h @@ -9,6 +9,7 @@ LIBA_BEGIN_DECLS void free(void *ptr); void * malloc(size_t size); void * realloc(void *ptr, size_t size); +void * calloc(size_t count, size_t size); void abort(void) __attribute__((noreturn)); diff --git a/liba/src/calloc.c b/liba/src/calloc.c new file mode 100644 index 000000000..0b638f4bc --- /dev/null +++ b/liba/src/calloc.c @@ -0,0 +1,9 @@ +#include + +void * calloc(size_t count, size_t size) { + void * result = malloc(count * size); + if (result != NULL) { + bzero(result, count * size); + } + return result; +}