常用的内存管理函数有以下三个:

1. 分配内存空间函数 malloc

调用形式:

(类型说明符*)malloc(size)


2. 分配内存空间函数 calloc

calloc 也用于分配内存空间。

调用形式:

(类型说明符*)calloc(n,size)


3.释放内存空间函数 free

调用形式:

free(void*ptr);

常用的内存管理函数

1、如何根据变量n的值动态申请内存空间?

(1)可以使用标准库stdlib.h中的malloc函数动态申请内存空间。如:

char *p=(char *)malloc(n);

其中n可以是变量或返回正整数值的表达式。如果函数调用成功,将分配n个字节的连续内存空间,指针p指向这段内存空间的首地址。如果函数调用失败,则返回NULL。

(2)可以通过p+k(k为[0,n)上的整数)读写这段内存空间的第k+1个字节。

(3)使用malloc函数申请的内存空间,不用时可以使用free函数释放。如:free(p)。

(4)malloc函数返回的是一个void*指针。可转换为其他具体类型的指针。

常用的内存管理函数

2、realloc函数有何作用?

(1)该函数在标准库stdlib.h中。

(2)realloc函数用于对使用malloc、calloc或realloc函数申请了内存的指针变量重新申请内存。如:

假定之前成功执行过代码:char *p=(char *)malloc(20);

则:realloc(p,30);可以重新为p申请30个字节的内存。p可以是空指针。

(3)realloc(p,0);可以释放指针p之前动态分配的内存。这时函数返回NULL。

(4)如果新申请的内存空间小于原内存空间,该内存块尾部内存被释放,剩余部分内存保留;如果新申请的内存空间大于原申请的内存空间,在原内存尾部有足够的扩大空间时,直接在原内存块尾部新增内存。如果原内存尾部空间不足,或原内存块无法改变大小,realloc将重新分配另一块内存,并把原先那块内存的内容复制到新的内存块上。因此,使用 realloc后就应该改用realloc返回的新指针。


声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:312334557@qq.com 我们将配合处理!

原文地址:《常用的内存管理函数(php内存使用状况函数)》发布于2022-07-16 14:38:57