您的位置:首页 > 其它

关于动态内存的分配和释放

2013-10-02 17:32 232 查看
      动态内存的分配和释放,通常用在数据结构中的链表、树和图结构中。下面简单探讨一下这方面的知识。

我们都知道,使用函数malloc、函数free和运算符sizeof来实现的。

1、 函数malloc的原型是:void* malloc(unsigned int size);

     (1)malloc函数的主要作用是在内存中分配一个长度为size的连续存储空间。其返回值是一个指向分配空间的起始位置的指针。如果分配失败,将返回NULL。

     (2)如果要为类型为stuct node的结构分配一块内存空间,可以使用一下语句来实现:p=(struct node*)malloc(sizeof(struct node));

               sizeof(struct node)表示计算 结构体类型需要占用的字节数,struct node*是将函数的返回值类型void*转换为指向结构体指针类型类型。

               如果分配成功,把该内存区域的起始地址返回给指针p。

2、函数free的原型是:void free(void *p);

     (1)free函数的作用是释放p指向的内存空间。如free(p); 。

3、注意的是:函数malloc和free一般是成对使用,成对出现的。在使用完内存后,采用free进行释放。

                          使用函数malloc时,最好要测试是否分配成功。

                           已经释放掉的内存不可以重新使用。

**************************************************************************************************************************************************************************************

❤永葆一颗纯洁、宽容平和、仁慈谦卑和意气风发的心!
态度决定一切     努力改变命运
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: