内存泄漏

本文介绍了内存泄漏的概念,指出当程序分配的内存未被正确释放时,就会造成内存泄漏。通过两个示例说明了内存泄漏的情况,一个是通过指针重新赋值导致的,另一个是函数内部内存分配后未返回指针造成的。了解这些有助于开发者预防和解决内存泄漏问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1. 什么是内存泄漏

所谓内存泄漏(Memory Leak),是指由于疏忽或者错误导致程序额未能释放已经不再使用的内存的情况

一般常说的内存泄漏是指内存的泄漏,内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,未释放该段内存,导致失去了对该段内存的控制

2. 内存泄漏的原因

应用程序一般使用new、malloc、calloc、realloc等从上申请某段内存进行使用,如果程序忘记使用free、delete等释放申请的该段内存,该段内存将不会被再次使用,就会造成内存泄漏

3. 内存泄漏举例

  • 示例1
char * memory = (char *)malloc(10*sizeof(char));
char * newMemory = (char *)malloc(10*sizeof(char));
memory = newMemory;

对memory指针进行重新赋值后,memory失去了对原来内存的控制权限,则会造成Memory Leak

  • 示例2
char * func(){
	return (char *)malloc(20);
}
int main(){
	func();
	return 0;
}

内存申请后,没有赋值给某个指针变量,导致申请的内存失去控制,造成Memory Leak

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博可睿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值