常见的内存分配

动态内存分配函数的头文件:<stdlib.h>

1.malloc 函数的使用方法

  malloc 函数的返回值是新申请的内存空间的首地址,如果申请失败,返回的是null

  格式如下:

    void *malloc(字节数)、

2.calloc 函数的使用方法、

   calloc 函数的格式:calloc(n,size)

  表示在堆区中申请n个大小为size的内存空间;如果分配成功返回值是新申请的内存空间的首地址,如果申请失败返回的是NULL;  需要注意的是,calloc申请成功后,会自动初始化。

3.realloc函数的使用

  realloc函数的格式:realloc指针变量p,size

表示把指针变量p所指向的内存空间的大小更改成size.

需要注意的是:realloc返回的是扩展后的空间的首地址!

   扩展后的结果:

        如果当前p相邻的空间有足够大的位置,扩展后空间的首地址不变;

        如果当前p相邻的空间没有足够大得位置,重新寻找一块足够大的空间,返回的值是新空间的首地址,并且把原来空间的值拷贝过来!

    

(当前p相邻的空间有足够大的位置的例子)

结果为:

(当前P相邻的空间没有足够大的位置,重新寻找一块足够大的空间,如下的例子)

其结果如下:

原文地址:https://www.cnblogs.com/lyz0925/p/4363654.html