Zhang Jiuan’ Notes

重温malloc,calloc和_alloc几个函数

在本篇日志讨论的是一组内存分配的函数:malloc,calloc和_alloc。下面分对此三个函数分别介绍。

malloc
原型:void * malloc(size_t size);
该函数将在堆上分配一个size byte大小的内存。它分配的单原完全按字节大小计算,因此如此分配N个单原的student_t,那么要这样实现:(stdent_t *)malloc(N * sizeof (student_t));

calloc
原型:void* calloc(size_t size, int count);
该函数解决了上面的函数的不足,它将分配count个size大小的单原,因此在便用此函数的时候就会很方便,比如对上面的例子就可以:(student_t *)calloc(sizeof(t_student), N)就可以了。这样使用就会很清晰的知道分配的内存是一种什么样的逻辑方式。

_alloc
原型:void *_alloc(size_t size);
本函数与上述的两个函数不同,因为它是在栈上分配了size大小的内存,因此使用此函数分配的内存不用再担心内存释放的情况了。但是使用此函数需要注意的是:在函数内部使用此函数分配的内存随着函数的组结不复存在,因此不能将此函数分配的内存供函数外部使用。

好了,今天就到这儿了。

 

thx

张久安

If you enjoyed this post, make sure you subscribe to my RSS feed!

One Comment, Comment or Ping

  1. Anonymous

    学习一下

Reply to “重温malloc,calloc和_alloc几个函数”

You must be logged in to post a comment.

返回顶部