首页 > 试题广场 >

库函数calloc有如下声明: void *calloc(

[问答题]

库函数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);

这道题你会答吗?花几分钟告诉大家答案吧!