文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>动态内存分配的一些总结

动态内存分配的一些总结

时间:2010-11-28  来源:Mrt-l

1、malloc,calloc,realloc,free, 这几个函数均在头文件stdlib.h中定义。 2、原型如下:
   void *malloc( size_t size );
   void free( void *pointer );
   void *calloc( size_t num_elements, size_t element_size );
   void realloc( void *ptr, size_t new_size );
3、功能
   malloc向内存池请求一块大小为size字节的内存,如果请求成功则返回
一个指向该内存的指针,指针的类型为(void *),并且新分配的内存并未以
任何的值进行初始化.如果内存池的大小不够则向操作系统请求更多的内存,
并在这块新的内存上执行分配任务。如果操作系统无法提供更多的内存,
malloc则返回一个NULL指针。因此在使用malloc函数时应该对返回的指针进
行检查,确保内存分配成功,确保返回的不是NULL指针。
   free函数是释放一块动态分配的内存。它的参数来自malloc,calloc,realloc
返回的指针。它不允许释放一块内存的一部分。
   calloc基本的功能跟malloc相似,但是calloc分配的内存在返回之前已经
初始化为0了。
   realloc是扩大或者缩小一块动态内存。如果是扩大的话就在原来内存的后面
增加一块新的内存,原来内存的大小和值都不变,也有可能是新开辟一块新的内存
并且将原来内存中的值复制到新开辟的内存中;如果是缩小一块内存的话,则在原
来内存的末尾截掉目标大小,剩下内存中的值跟原来一样。
4、在使用这些库函数进行动态内存分配时,一定要检查返回的指针是否为NULL指针。 2010-11-28
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载