C语言.内存申请malloc()

一.栈和堆的区别:
栈:
堆:

二.堆空间
①主动申请堆空间 – malloc()
#include<stdlib.h>

void *malloc(size_t size);
size:需要申请堆空间的字节数

返回值:
成功:指向申请到的这片空间的地址。
失败:NULL。

注意: The memory is not initialized.
申请到的堆空间一定是没有被初始化过的!

②主动释放堆空间 – free()
#include <stdlib.h>
void free (void *ptr)
ptr:需要释放堆空间的基地址
返回值:没有返回值

注意:
free()之后指针不会没了,变量还是那个变量,只是给系统一个标志,告诉系统这个内存区域可以被使用了,所以访问其内容是未知的。

③研究堆空间

int *p=(int *)malloc(sizeof(int)*3)    //malloc返回值为void *;类型转换
*p=10;//*p=*(p+0)=p[0];
p[1]=20;
p[2]=30;
//p[3]=40;   //访问了没有申请的内存,危险操作;
free(p);      //释放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值