黑马程序员技术交流社区

标题: 笔记:常见动态内存分配的函数 [打印本页]

作者: wlh0803    时间: 2015-7-26 15:53
标题: 笔记:常见动态内存分配的函数
常见动态内存分配的函数
1.malloc

使用方法 void *malloc (unsigned size) ,size是分配的字节数。包含在库函数stdlib.h中。
作用:在内存的堆区分配一个大小为size的连续空间。如果分配成功,返回新分配内存的首地址,否则返回NULL。

#include <stdio.h>
#include <stdlib.h>

int main(){
       
        int *p = (int *)malloc(4*sizeof(int));
       
        if(p!=NULL){
               
                //内存申请成功
                               
        }else{
               
                //申请失败

        }
       
        free(p);   //释放p的内存空间
        p = NULL;

        return 0;
}


2.calloc

格式:calloc(块数,长度)
       
        //分配4块,每块内存长度为4的内存空间
        int *p = (int *)calloc(4,sizeof(int));

注意事项:可以帮分配的内存空间初始化为0



3.relloc

作用:可以给已经存在的空间扩充大小。

#include <stdio.h>
#include <stdlib.h>

int main(){
       
        int *p = (int *)malloc(4*sizeof(int));
       
        //扩充p的大小,首地址可能变也可能不变
        p = relloc(p,40*sizeof(int));


        if(p!=NULL){
               
                //内存申请成功
                               
        }else{
               
                //申请失败

        }
       
        return 0;
}



作者: liusuizuoyou    时间: 2015-7-26 17:28
我得好好补补




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2