黑马程序员-C语言中内存动态分配函数的使用方法及注意事项

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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值