是否对申请的区域进行初始化而已
但是我想你也知道我们写程序的时候多用malloc而很少用calloc,何解?
因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的
calloc相当于
p = malloc();
memset(p, 0,size);
多了对内存的写零操作,而写零这个操作我们有时候需要,而大部分时间不需要
所以就有两个函数并存的关系了
(1)函数malloc不能初始化所分配的内存空间
(2)函数calloc() 会将所分配的内存空间中的每一位都初始化为零
(3)realloc可以对给定的指针所指的空间进行扩大或者缩小,无论是扩张或是缩小,原有内存的中内容将保持不变.当然,对于缩小,则被缩小的那一部分的内容会丢失.realloc并不保证调整后的内存空间和原来的内存空间保持同一内存地址.相反,realloc返回的指针很可能指向一个新的地址.