关于动态内存的分配和释放
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时,最好要测试是否分配成功。
已经释放掉的内存不可以重新使用。
**************************************************************************************************************************************************************************************
❤永葆一颗纯洁、宽容平和、仁慈谦卑和意气风发的心!
态度决定一切 努力改变命运
我们都知道,使用函数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时,最好要测试是否分配成功。
已经释放掉的内存不可以重新使用。
**************************************************************************************************************************************************************************************
❤永葆一颗纯洁、宽容平和、仁慈谦卑和意气风发的心!
态度决定一切 努力改变命运
相关文章推荐
- 关于动态内存的申请和释放
- 关于C++类与动态内存分配中布局new操作符
- 关于结构体内存分配及释放
- C++ 关于二维数组的动态分配和释放——方法一(new)
- C语言实现一、二维数组动态内存分配与释放以及图像的线性插值放大与优化
- 关于内存分配与释放的解析
- 动态内存分配与释放
- 05-数据结构_预备知识-动态内存的分配和释放
- 自说动态内存分配与释放
- C++指针参数 动态内存分配和释放
- C/C++中的二维数组动态内存分配与释放
- 关于内存分配与释放的试验
- c c++ 动态内存分配 释放 区别
- 结构体的使用和动态内存的分配及释放
- 关于C++中结构体及其指针成员的内存分配和释放
- 关于C/C++中内存分配与释放的疑惑?
- C++ 动态内存的分配与释放反汇编代码【DEBUG】
- 结构体的使用和动态内存的分配及释放
- 动态内存分配(new)和释放(delete)
- 数据结构预备知识之指针,结构体和动态内存的分配与释放