C 内存管理
参考链接:https://www.runoob.com/cprogramming/c-memory-management.html
C在头文件stdlib.h
中提供了几个函数用于内存的分配和管理。
名称 | 描述 |
---|---|
void *calloc(int num,int size) | 分配num个长度为size的连续内存空间、并且每个字节都初始化 |
void free(void *address) | 释放地址所指向的内存块 |
void *malloc(int num) | 在堆区分配一块指定大小的内存空间 |
void *realloc(void *address int newsize) | 重新为address分配内存,分配的大小有newsize所指定 |
void*为没有指定类型的指针、C规定void *类型可以通过强制类型转换为任何类型的指针 |
实例
//先定义一个类型的指针,该指针指向未定义所需内存大小的字符
char *description;
//使用malloc()分配
description=(char *)malloc(200*sizeof(char));//注意有强制类型转换
//重新分配
description=(char *)realloc(description ,100*sizeof(char));
//释放内存空间
free(description);
当程序退出的时候,操作系统会自动释放所有分配给程序的内存。但是使用完毕后随时释放是一个良好的习惯