使用malloc函数分配空间

1.使用malloc函数分配空间

malloc函数的原型是:

void *malloc(unsigned int size);

函数的作用 : 在内存的动态储存区中分配一个长度为size的连续空间,并返回所分配第一个字节的地址.

看一下malloc的使用例子:

float *f = (float *)malloc(4); 
char *c = (char *)malloc(1);

上面两个这种分配空间方式没有什么问题,分配长度为4的连续空间, 将函数原型的返回类型void *强制转换为float */char *, 并储存在指针f,c中.
上面方法是直接指定的分配的长度大小,但是如果遇到非已知长度,比如说自定义的结构体,我们无法知道他所占的内存长度,所以malloc通常和sizeof一起使用.

[改进] 使用sizeof配合malloc分配
sizeof的定义: sizeof是测量类型或者变量长度的运算符.

float *f = (float *)malloc(sizeof(float));
char *c = (char *)malloc(sizeof(char));
my_Struct *s1 = (my_Struct *)malloc(sizeof(my_Struct));

这样通过sizeof就可以直接测量变量的长度.

2. 使用free函数释放空间
free函数原型: :

	void free(void *p);

函数作用:
释放指针变量p所指向的动态空间,使这部分空间可以被其他变量使用.

现在对之前申请的空间进行释放:

free(f);
free(c);
free(my_struct); //空间释放后这些变量将不能再进行引用了

分配完的内存计算机就会分配给其他需要分配空间的变量, 动态分配空间完进行释放是个好习惯,做到有始有终.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值