malloc函数

当我们需要做一个成绩管理系统,人数可能为全校学生,也可能为一个班的学生,当我们开辟一个班的数组大小时,如果要存储整个学校的人数时,会出现内存不够用的情况;当我们开辟全校人数大小的数组时,输入一个班人数的大小时,会出现内存浪费的情况。
所以引入malloc函数。
malloc时动态内存分配函数

用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址

malloc的头文件为<stdlib,h>

总的来说:

bool* arr = (bool*)malloc(n * sizeof(bool)); 
是申请了一个空间大小为n * sizeof(bool)的bool类型的数组,并将其首地址赋值给指针变量arr。
同理,
类型名* 指针变量=(类型名*)malloc(所需空间大小)
是申请了一个给定类型的给定空间大小,并把这块空间的首地址赋值给给定指针

malloc函数返回值

如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

malloc函数使用注意事项


malloc函数的返回的是无类型指针,在使用时一定要强制转换为所需要的类型。
在使用malloc开辟空间时,使用完成一定要释放空间,如果不释放会造内存泄漏。
在使用malloc函数开辟的空间中,不要进行指针的移动,因为一旦移动之后可能出现申请的空间和释放空间大小的不匹配
 

总体使用方式如下:

#include<stdlib.h>
int*p,*q;
p=(int*)malloc(sizeof(int));//malloc前括号内表示类型,后括号内表示需要的单个内存大小(单个,但是
//可以有很多个)
q=p;//确保始终可以定位首地址
printf("%d",*p);
p++;//输入多个元素
free(q);//free括号内的是首地址
p = NULL;//使用后该指针变量一定要重新指向NULL,防止悬空指针(失效指针)出现,有效规避错误操作

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值