C动态内存分配函数

有几个内存分配函数可以用来管理动态内存,虽然具体可用的函数取决于系统,但大部分系统的stdlib.h头文件中都有如下函数:

  • malloc
  • realloc
  • calloc
  • free

表2-1总结了这些函数。

表2-1:动态内存分配函数

函数 描述
malloc 从堆上分配内存
realloc 在之前分配的内存块的基础上,将内存重新分配为更大或者更小的部分
calloc 从堆上分配内存并清零
free 将内存块返回堆

动态内存从堆上分配,至于一连串内存分配调用,系统不保证内存的顺序和所分配内存的连续性。不过,分配的内存会根据指针的数据类型对齐,比如说,4字节的整数会分配在能被4整除的地址边界上。堆管理器返回的地址是最低字节的地址。

如下图所示,malloc函数在地址500处分配了4字节空间,第二次使用该函数在地址600处分配了内存。它们都处于4字节地址边界上,而且不是从相邻的内存位置上分配的。
enter image description here

赞(2)

评论 抢沙发

评论前必须登录!

 

C指针