内存动态分配与释放

Posted wzzkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存动态分配与释放相关的知识,希望对你有一定的参考价值。

内存的动态分配须要使用函数malloc。函数free和运算符sizeof来实现。

函数malloc的原型是:

Void* malloc(unsigned int size);

函数malloc的作用是在内存中分配一个长度为size的连续存储空间。函数的返回值是一个指向分配空间的起始位置的指针。假设分配空间失败,则返回NULL。假设要为类型为struct node的结构体分配一块内存空间。能够使用下面语句来实现:

p=(struct node*)malloc(sizeof(struct node));

当中 ,sizeof(struct node)是计算结构体类型须要占用的字节数。struct node*是把函数的返回值类型void*转换为指向结构体指针类型。假设分配成功,把该内存区域的起始地址返回给指针p。 

函数free的原型是:

void free(void *p);

函数free的作用是释放p指向的内存空间。假设要释放刚才申请的空间,能够使用下面语句来实现:

free(p);

注意:函数malloc和free一般成对使用,在使用完内存空间时,要记得用free将内存空间释放。使用函数malloc时。最好要測试是否分配成功。

已经释放掉的内存不能够又一次使用。

以上是关于内存动态分配与释放的主要内容,如果未能解决你的问题,请参考以下文章

动态内存分配与静态内存分配

指针和动态内存分配和释放

二动态内存分配与使用

解析PHP中的内存管理,PHP动态分配和释放内存

Java静态内存与动态内存分配的解析

C++对象的动态建立与释放