我知道这个问题可能被标记为 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 所需的内存。