A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flywithde 中级黑马   /  2015-8-2 10:04  /  341 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

malloc:
    格式: void * malloc(unsigned size);
    说明:从内存的堆区分配大小为size个字节的连续的内存空间,如果内存分配成功  返回内存的首地址,失败则返回null,因此在分配内存的时候应该先判断是否分配成功,然后再使用这段内存
    使用:
                //从内存中申请一块内存空间,可以存储4个整数
                // = 赋值,要求等号的左右两侧的类型要一致
                //注意:malloc 申请的内存空间,如果我们不赋值是垃圾数
                int *p = (int *)malloc(4*sizeof(int));   //16个字节
                //使用一个函数给malloc申请的空间进行初始化
                memset(p,'a',16);
calloc:
    //callloc 分配指定块数和长度的内存空间
    //格式:calloc(块数,长度)
    //分配了4块,每一块内存长度为4的内存空间
    //他们的地址也是连续的
    //注意事项: calloc 它使可以帮我们自动的初始化为0
    int *p = (int *)calloc(4, sizeof(int));   //16个字节

realloc:
    用途:函数可以给已经存在的空间扩充大小
    注意:使用realloc函数返回的是新申请的内存空间的首地址,必须将该地址重新赋值给指针变量才可   
            使用新分配的内存空间
   用法:
            int *p = (int *)malloc(4*sizeof(int));   //16个字节
            //realloc 函数可以给已经存在的空间扩充大小
            p = realloc(p, 40*sizeof(int));
free函数:
用途:释放动态内存分配函数分配的内存空间,不然会造成内存泄露
    用法:
                int *p = (int *)malloc(4*sizeof(int));   //16个字节
                //当不再使用动态分配的内存空间时,应该使用free()函数释放内存空间
                free(p);
                //free(p)以后,p是一个野指针,需要将其指向置为空
                p = NULL;

1 个回复

倒序浏览
为自己点赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马