随笔 - 576  文章 - 0  评论 - 62  阅读 - 219万

内存泄漏

1、程序结束后,程序(实际上是指进程)占用的内存全部释放,不管是栈上的内存还是堆上的内存,包括泄漏的内存,全部释放。因为进程都不在了,OS会把进程的所有资源回收。

2、因此,所谓的内存泄漏只是存在于程序运行过程中。

3、内存泄漏:在程序运行过程中,对于一块确定不再使用的内存,没有人工delete,才会造成内存泄漏。

4、假设一块内存,在程序的整个运行过程中都要使用,这种情况下这块内存是不能释放的,否则会引起未定义行为。必须等到程序结束后,OS来回收内存。

5、假设指针指向一块申请的内存A,然后再指向一块申请的内存B,对于内存A,以后永远不会在使用,没有对内存A进行delete,造成内存泄漏。OS不会释放内存A,因为他不知道你还用不用内存A。只有在程序结束的情况下,才会释放进城上的所有内存,包括内存A。

posted on   Andy Niu  阅读(237)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示