calloc分配好内存空间之后,返回指向该空间的指针,但是此时无法操作这块内存,如果要操作这块内存,必须要将内存初始化成某种格式,就好象做工厂批量生产东西需要一个模型,原理一样。 malloc和calloc一样,都需要强制转换成你说的结构体类型。 区别: calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据
其实区别就是 是否对申请的区域进行初始化而已 但是我想你也知道我们写程序的时候多用malloc而很少用calloc,和解? 因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的 calloc相当于 p = malloc(); memset(p, 0,size); 多了对内存的写零操作,而写零这个操作我们有时候需要,而大部分时间不需要
malloc, calloc函数
最新推荐文章于 2024-09-27 21:15:11 发布