动态内存分配可以在程序运行的时候临时决定需要分配多少个存储区
为了管理动态分配内存需要使用一组标准函数 <stdlib.h>
malloc:可以动态分配一组连续的字节;需要一个整型参数表示希望分配的字节个数
他的返回值表示分配好的第一个字节的地址,如果失败,返回NULL
malloc使用一个无类型指针存储区记录返回值,
需要首先强制类型转换成有类型指针,然后才可以使用
动态内存使用完成之后必须释放,free函数可以用来释放动态分配内存
这个函数需要动态内存的首地址作为参数
如果使用指针作为参数调用free函数,则函数结束之后会成为野指针,必须恢复成空指针
一个函数动态分配的内存可以给任何其他函数使用
calloc(存储区的个数,单个存储区的大小):
可以确定分配的所有内存内容都是0;需要包含stdlib.h头文件
这个函数返回值就是分配好的第一个存储区的地址;分配内存有可能失败,失败返回NULL
realloc():可以动态改变分配内存的大小;尽量少使用这个函数