常见的内存分配

动态内存分配函数的头文件:<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相邻的空间没有足够大的位置,重新寻找一块足够大的空间,如下的例子)

 

其结果如下:

 

posted @ 2015-03-24 18:35  一人前行  阅读(141)  评论(0编辑  收藏  举报