c之动态内存分配-malloc

本篇通过记录malloc及相关函数讲解动态内存分配

定义:通过malloc函数可以在中申请指定长度的内存

       动态内存申请的实现:通过地址+长度的map结构实现动态内存的管理

头文件:#include <stdlib.h>

       void *malloc(size_t size);

funcation:在堆中申请指定长度字节的内存地址

参数:用于指定申请内存的长度

返回值:返回申请内存的首地址

int *arr=malloc(100); 
// 申请1、25*4=100字节长度的内存
// 将返回的 void *型指针转换成 int *

       void *calloc(size_t nmemb, size_t size);
funcation:在堆中申请指定数量的相同数据类型的内存

参数:nmemb-指定这一数据类型的元素的个数

           size-指定这一数据类型所占的字节数

返回值:返回一个void *型的指针,指向申请内存的首地址

       void *realloc(void *ptr, size_t size);

function:基于已申请的内存,做申请内存长度的伸缩

参数:ptr-已申请的堆内存的返回值

           size-申请内存的长(字节),

       void free(void *ptr);

funcation:用于释放申请的内存地址,防止内存泄露

参数:申请的内存的首地址,如果为非首地址,会导致报错

void *memset(void *buffer, int ch, size_t count);

function:对申请的内存进行置位

参数:buffer-需要置位的内存的首地址

           ch-需要置位成ch

           count-需要置位的内存长度

返回值:
 

A&Q1:报错-incompatible implicit declaration of built-in function ‘malloc’

              请加入头文件 #include <stdlib.h>

                                    #include <string.h>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值