malloc函数
malloc函数向内存申请一块练习的内存空间
- 若开辟成功,返回开辟的空间的指针
- 若开辟失败,返回NULL
- 返回值是void*,所以malloc并不知道开辟的空间的类型,在使用开辟的空间时需要强转
- 在开辟完空间后,要记得释放空间
- 开辟0字节的空间在标准中是未定义的,取决于编译器。
函数声明:
1 | void* malloc (size_t size);//返回值类型是void* |
函数的使用:
1 | int main() |
calloc函数
calloc函数与malloc函数的区别:calloc函数在申请空间的时候,会将空间中的值初始化为0
函数的声明:
1 | void* calloc (size_t num, size_t size);//返回一个void*的指针 |
函数使用:
1 | int main() |
realloc函数
函数声明:
1 | void* realloc (void* ptr, size_t size);//返回值类型是void* |
当我们开辟完一快空间后,假如我们需要对这块空间的大小进行调整,那么此时就用到了realloc函数
我们可以通过realloc函数把空间缩小:
1 |
|
我们可以通过realloc函数把空间扩大:
1 |
|
free函数
注意:当用指针接收动态开辟的空间,用free释放时,free释放的是指针指向的空间,不是指针
如果ptr指针向的空间不是动态开辟的吗,那么free函数产生的结果是未定义的
如果ptr是空指针,那么free函数什么也不做
1 | void free(void*ptr); |