动态内存的分配和释放,通常用在数据结构中的链表、树和图结构中。下面简单探讨一下这方面的知识。
我们都知道,使用函数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时,最好要测试是否分配成功。
已经释放掉的内存不可以重新使用。
❤永葆一颗纯洁、宽容平和、仁慈谦卑和意气风发的心!
态度决定一切 努力改变命运