【发布时间】:2012-03-02 01:24:02
【问题描述】:
我知道这个问题可能被标记为 malloc 和 calloc 之间差异的重复,但我仍然想问它。
我知道 calloc 会初始化内存块,这里我的问题不在于那部分。
我的问题是
malloc 的定义是分配一块指定大小的内存。
calloc 表示它分配了多个内存块,每个内存块的大小相同。
这样分配一块内存和多块内存真的是两者的区别吗?
因为我觉得我们可以使用 malloc 做同样的事情,这可以通过 calloc 完成。
例如:
int *ptr;
ptr=(int *) malloc(100 * (sizeof(int)));
和
int *ptr;
ptr=(int *) calloc(100,sizeof(int));
最终会分配 100 倍于 int 所需的内存。
【问题讨论】:
标签: c memory-management malloc calloc