常用的内存管理函数

发布时间:2022年07月06日 阅读:1471 次

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

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返回的新指针。


Tag:常用 内存 管理 函数
相关文章

发表评论: