动态构造一维数组malloc

动态内存分配和释放:
动态构造一维数组
假设动态构造一个int型数组
int *p = (int *)malloc(int len);
1、 malloc只有一个int型的形参,表示要求系统分配的字节数
2、 malloc函数的功能是请求系统len个字节的内存空间,如果请求分配成功,
则返回第一个字节的地址,如果分配不成功,则返回NULL
3、 malloc函数能且只能返回第一个字节的地址,所以我们需要把这个无任何实
际意义的第一个字节的地址(俗称干地址)转化为一个有实际意义的地址,因此
malloc前面必须加(数据类型 *),表示把这个无实际意义的第一个字节的地址
转化为相应类型的地址。如:
int *p = (int *)malloc(50);
表示将系统分配好的50个字节的第一个字节的地址转化为int *型的
地址,更准确的说是把第一个字节的地址转化为四个字节的地址,这
样p就指向了第一个的四个字节,p+1就指向了第2个的四个字节,
p+i就指向了第i+1个的4个字节。p[0]就是第一个元素, p[i]就是第
i+1个元素
double *p = (double *)malloc(80);
表示将系统分配好的80个字节的第一个字节的地址转化为double *型的
地址,更准确的说是把第一个字节的地址转化为8个字节的地址,这
样p就指向了第一个的8个字节,p+1就指向了第2个的8个字节,
p+i就指向了第i+1个的8个字节。p[0]就是第一个元素, p[i]就是第
i+1个元素
free(p)
释放p所指向的内存,而不是释放p本身所占用的内存

郝斌老师笔记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值