IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言的动态内存管理 -> 正文阅读

[C++知识库]C语言的动态内存管理

?在C语言中如果只是单纯的使用数组来创建变量,这个数组中的变量的存放在栈中,在计算机中就固定的内存的空间,就不能在程序运行的时候动态地增加或者减少内存。所以一般都会去使用动态分配内存。

c语言中,动态管理内存的主要的是下面四个,分别是:malloc ,calloc , free,realoc。

malloc 的使用方法:

int* p = (int*)malloc(10 * sizeof(int));//代表创建十个变量的整形数组

malloc只有一个参数,参数代表动态开辟多少字节的内存。malloc会返回一个void类型的指针,因为动态数组的类型是int类型的,所以这里使用 (int*) 来将强制类型转换为整型指针。

free的使用方法:

free(p);
p = NULL;

要注意,要释放指针p所指向的内存,首先要将指针p执行 free(p) 。然后将指针p 置为空。

以及一般动态开辟内存后都要将内存释放。一般 free 和malloc 都是成对出现的。

calloc的使用方法:

int* p = (int*)malloc(10,sizeof(int));

使用方式大致和malloc是相同的,但是calloc会自动初始化为0。

realloc的使用方法:

realloc函数的出现让动态内存管理更加灵活,在有时候发现申请的空间太小或者太大,用realloc来进行调整。

int* p = (int*)malloc(10 * sizeof(int));
//将 p 所指向的空间进行扩容
int* t = (int*)realloc(p,20 * sizeof(int));
if(t != NULL)
{
    p = t;
}

要注意,在使用realloc函数的时候,realloc函数有可能会返回一个NULL,所以如果直接将realloc的返回值赋值给 p 有可能会导致 p 原来所指向的空间丢失。

realoc也可以实现malloc的功能:

int* p = (int*)realloc(NULL,10 * sizeof(int));

补:用c语言动态管理就可以很好地实现一个通讯录的编写。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:01:58  更:2021-08-25 12:02:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 6:20:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计