C语言学习——动态分配

本文详细介绍了C语言中用于动态内存分配的三个关键函数:malloc、free和calloc。malloc函数用于在堆区申请指定字节数的空间,并返回其地址;free函数用于释放之前通过malloc分配的内存,但不改变地址本身;calloc则一次性分配多个相同大小的内存块。通过实例展示了这三个函数的使用方法和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、malloc

二、free

三、calloc

1.malloc函数

#include "stdlib.h"

           void *malloc(unsigned int size);

函数:

        函数名:malloc

        函数参数:unsigned int size

        函数返回值:void *

功能:

        在堆区申请一块size个字节的空间会把申请到的空间地址的首字节编号返回,

        此空间没有类型(可以强制转换任何地址类型)

#include "stdlib.h"

void main(void)
{
    int *p;
    
    p = (int *)malloc(8);//分配8个字节的地址空间并且强转为int
}

2.free 函数

                #include "stdlib.h"

                void *free(void *ptr);

        函数名:free

        功能:释放一块堆区空间的内容

        参数:指针变量----地址

        返回值:无

注意:        

        地址空间没有改变,地址的内容释放

#include “stdlib.h”

void main(void)
{
    int *p;
    p = (int *)malloc(8);
    *p = 100;

    free(p);
}

   3.calloc 函数

        #include "stdlib.h"

        void *calloc(unsigned int num,unsigned int size)

        函数名:calloc(块区内存分配)

        功能:在堆区申请num块,每块大小为size字节数内存空间

        参数:

                        num:要申请的内存块数

                        size:每一块占用的字节数

                例:

                        malloc(16);

                        calloc(2,8);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值