#include<stdlib.h>
malloc
只关心申请的内存大小,单位是字节。
申请的是一个连续的内存。该函数申请的一定是一个连续的内存空间,可能申请到的内存比实际申请的大,也可能申请不到,若申请不到返回NULL,一定要用if语句判断一下
返回值类型为指针类型,可以根据实际情况返回成所需要的的指针类型
显式初始化。堆区不会自动在分配时做初始化的,包括清零。所以你要自己进行初始化。
free
void free(void *ptr);
函数的参数是ptr,指的是需要释放的内存的起始地址,且次函数没有返回值。
必须提供内存的起始地址。调用该函数时,必须提供内存的起始地址,不能只提供部分地址。必须保存好malloc返回的指针值,如果丢失,则所分配的堆空间无法回收,称内存泄漏
mallloc和free配合使用,编译器不负责动态内存的释放,需要程序员自己释放。
不允许重复释放。
free只能释放堆内存空间