动态内存管理

简介: 动态内存管理

57da96d7b4914c54b3dd250f339b4647.png

7b80e4493ce64a0183b6e74f010525cb.png

一、函数malloc(开辟动态内存空间)


void* malloc (size_t size)


头文件 #include<stdlib.h>


(1)若开辟失败会返回一个空指针。


(2)如果我们不释放:当程序结束,该内存空间会被系统自动回收。


                                     当程序不结束,动态内存是不会自动回收的,就会造成内存泄漏的问题。


(3)申请的空间不会初始化。


二、函数free(释放动态开辟的内存空间)


void free (viod*memblock)


头文件 #include<stdlib.h>


(1)一般释放完的空间应该给它赋值为NULL。


(2)如果memblock为空指针,则函数什么事都不做。


(3)必须从开辟动态内存的起始位置释放。


三、函数calloc(开辟动态内存空间)


void *calloc(size_num,size_size)


头文件 #include<stdlib.h>


num为申请size类型的个数,size为申请类型。


(1)申请的空间会被初始化为0。


四、函数realloc(扩容空间)


void *realloc(void * ptr,size_size)


头文件 #include<stdlib.h>


ptr为要调整的内存地址,size为调整之后新大小。返回值为调整之后的内存起始位置。


(1)如果扩容失败返回一个空指针。


(2)在扩容时若原空间无法扩容到目标空间,则会找到一块新的足够大的空间,并且会把原来大小内存空间中的内容复制到新空间中,并返回新的空间地址指针。还会把原空间free掉。



目录
相关文章
|
C语言
动态内存管理(一)
动态内存管理
98 0
|
编译器 文件存储 数据库
Day_17> 动态内存管理
Day_17> 动态内存管理
|
程序员 编译器 C语言
【深入理解C】动态内存管理
【深入理解C】动态内存管理
83 0
|
3月前
|
存储 缓存 C语言
【c++】动态内存管理
本文介绍了C++中动态内存管理的新方式——`new`和`delete`操作符,详细探讨了它们的使用方法及与C语言中`malloc`/`free`的区别。文章首先回顾了C语言中的动态内存管理,接着通过代码实例展示了`new`和`delete`的基本用法,包括对内置类型和自定义类型的动态内存分配与释放。此外,文章还深入解析了`operator new`和`operator delete`的底层实现,以及定位new表达式的应用,最后总结了`malloc`/`free`与`new`/`delete`的主要差异。
83 3
|
程序员 编译器 C语言
动态内存管理(上)
动态内存管理(上)
55 0
|
9月前
|
存储 安全 算法
c++动态内存管理(一)
C++ 动态内存管理 在 C++ 中,动态内存管理是一个核心概念,它允许在运行时分配和释放内存。以下是 C++ 动态内存管理需要掌握的关键知识点:
203 0
|
存储 Linux 编译器
【C++】动态内存管理
【C++】动态内存管理
173 0
【C++】动态内存管理
|
9月前
|
编译器 程序员 C语言
动态内存管理(超详细!)
动态内存管理(超详细!)
72 2
|
编译器 C语言 C++
动态内存管理上
动态内存管理上

热门文章

最新文章