库函数calloc有如下声明:
void *calloc(size_t nmemb, size_t size);
根据库文档:“函数calloc为一个数组分配内存,该数组有nmemb个元素,每个元素为size字节。内存设置为0。如果nmemb或size为0,则calloc返回NULL。”
编写calloc的实现,通过调用malloc执行分配,调用memset将内存设置为0。你的代码应 该没有任何由算术溢出引起的漏洞,且无论数据类型size_t多少位表示,代码都应该正常工作。
作为参考,函数malloc和memset声明如下:
void *raalloc(size_t size); void *memset(void *s, int c, size_t n);