|
|
|
|
|
by unwind
1291 days ago
|
|
Are you sure? The calloc() [1] function mentioned above takes two values of type size_t, and allocates their product bytes. I'm on mobile without (!) the C99 draft spec but at least the man page gives no such restriction. [1] https://linux.die.net/man/3/calloc |
|
calloc returns NULL when can't satisfy the request. The idea of taking two arguments is not to allow the user to specify a larger requested size, but to protect against overflows as it can happen with e.g. malloc() where the user has to compute the size of arrays by multiplying NUM_ELEMS * SIZE_PER_ELEM. And the user will normally do so less carefully than a library function.