- 函数和指针的结合
- 指针函数
概念:返回值类型是指针类型的函数
能造成以上问题的本质:因为定义的数组是一个局部数组,存在生命周期的限制,因此解决方案有两种:如上图所示:
但是:以上方案存在问题:
- 不能操作空间
- 不能自己随时回收空间
---》因此:可以借助于动态内存提供的函数完成程序员自己申请,自己用,自己释放的效果。
故:要实现用户来在堆区申请空间以及释放空间均需要通过函数来完成。
- 申请空间:malloc
函数原型:
void * malloc(size_t size);
功能:用来在堆区申请一片连续的内存空间
参数:所申请空间的字节数
返回值:成功代表申请空间的首地址,失败返回值为NULL
- 释放空间:free
void free(void *pstr);
功能:释放一片空间
参数:malloc成功之后的返回值
返回值:空
- 扩容空间:realloc
void * realloc(void * ptr, size_t size);
功能:扩容空间(注意:扩容之后的空间可能在之前旧空间基础之上再扩充了一段,也可能找了一个更大更新的空间,此时返回值就会和之前旧空间地址不一样)