野指针与内存泄漏那些事

野指针:不是NULL指针,是指向垃圾内存的指针

野指针成因:

1.指针变量没有被初始化:指针变量在创建时同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。

2.指针p被free或者delete,没有被设置为NULL,让人误以为p是个合法的指针。

注意:不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。

内存泄漏:申请了一块内存空间,使用完毕后没有释放掉,它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统奔溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了

 

内存泄漏4类
1.常发性内存泄漏:发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏

2.偶发性内存泄漏:特定环境发生

3.一次性内存泄漏:发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存

4.隐式内存泄漏:程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。但对于一个服务器程序,需要运行时间长,不及时释放内存也可能导致最终耗尽系统的所有内存。

 

内存泄漏表现:CPU资源耗尽;进程id耗尽;硬盘耗尽;内存泄漏或者内存耗尽

椎内存是指程序从椎中分配的,大小任意的,使用完后必须释放的内存

应用程序一般使用malloc,realloc,new等函数从椎中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存模块,否则,这块内存就不能被再次使用

转载于:https://www.cnblogs.com/tryFighting/p/9197481.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言入门经典案例,c语言入门经典案例及飞源代码.doc

c语言入门经典案例及飞源代码循环控制输出图案【程序1】题目:输出9*9口诀。1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码:#include "stdio.h"main(){ int i,j,result; pri…

JS加密算法简单分析

这次分析百度音乐的评论请求的加密,首先先看包 看到有两个地方1. param,2. sign,基本可以断定sign是用的MD5加密的 那么我们从html页面分析入手,恰巧看到html代码中有写到这么一段 右键点击open in Source panel 熟悉的配方&…

RF新手常见问题总结--(基础篇)

RF新手常见问题总结--(基础篇) 学RF快一年了,经常碰到一些问题,有些同学也经常问到,这里总结一些,期望有人后续再补充,主要是响应群里--雪霁大神的号召,技术共享。废话少说,直接上干货了。1. 经…

Java自动拆箱陷阱。 谨防!

您认为以下代码段会显示什么? Object o true ? new Integer(1) : new Double(2.0); System.out.println(o);是! 它将打印: 1.0什么? 1.0? 但是我已经为我的o变量分配了一个Integer 。 为什么打印1.0? 事实证明&…

golang学习笔记(6)--面向接口编程

一、 duck typing duck typing意思是鸭子类型,我们把具备鸭子的行为等部分特征的一个东西叫做鸭子,这是鸭子类型的解释。其实,在go语言中是采用鸭子类型这种思想来实现接口这种编程方式的,我们把一个类只要实现了某接口的方法&…

c语言self用法,C/C++知识点之Self Numbers C语言 UVA640

本文主要向大家介绍了C/C知识点之Self Numbers C语言 UVA640,通过具体的内容向大家展示,希望对大家学习C/C知识点有所帮助。In 1949 the Indian mathematician D.R. Kaprekar discovered a class ofnumbers called self-numbers. For any positive integ…

JS 的平凡之路--学习人气眼中的效果(上)

最近看了看人气眼的界面,感觉到学习的地方有很多呀。这里先带大家看看人气值跳动的实现。本篇代码基于Vue2.x.x。 一、概要 首先看一下效果图: 要想实现上面的效果,我们分为这几个部分: 判断元素是否在可视区域内;函数…

[Swift]LeetCode86. 分隔链表 | Partition List

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址&a…

XmlNode与XmlElement的区别总结

原文链接:http://www.cnblogs.com/oilsun/archive/2012/07/07/2580427.html 今 天在做ASP.NET操作XML文档的过程中,发现了两个类:XmlNode和XmlElement。这两个类的功能极其类似(因为我们一般都是在对 Element节点进行操作&#xf…

HOW TO:构造Java类

在这篇HowTo帖子中,我将展示如何将一个类与另一个类一起定型。 为什么这有用? 当您的项目中发生大量BCI时,让每个开发人员编写BCI代码都是不明智的。 首先,这不会抽象出所使用的BCI库。 鉴于Java不支持多重继承,构造型…

android horizontalscrollview 动画,Android HorizontalScrollView左右滑动效果

本文实例为大家分享了Android HorizontalScrollView左右滑动的具体代码,供大家参考,具体内容如下效果图一.什么是HorizontalScrollViewHorizontalScrollView实际上是一个FrameLayout ,这意味着你只能在它下面放置一个子控件 ,这个子控件可以包…

[译] Airbnb 在 React Native 上下的赌注(一):概述

原文地址:React Native at Airbnb原文作者:Gabriel Peal译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/react-native-at-airbnb.md译者:ALVINYEH校对者:ChenDo…

noip退役之路--祝福

原文地址:bb机的老巢 文/鲁迅 noip前的集训毕竟最像集训,去北京不必说,就在自己学校的机房中也显出将到noip的气象来。屏幕广播里讲解的题目闪着斑白的微光,随着鼠标叩击“提交”按钮的一声钝响,是直播ac后的欢呼&…

批处理最佳做法

大多数应用程序至少具有一个批处理任务,在后台执行特定的逻辑。 编写批处理作业并不复杂,但是您需要了解一些基本规则,我将列举一些我发现最重要的规则。 从输入类型的角度来看,处理项目可以通过轮询处理项目存储库来实现&#x…

android 360度视频播放器,Android开发VR实战之播放360度全景视频

VR即Virtual Reality虚拟现实。虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统它利用计算机生成一种模拟环境是一种多源信息融合的交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。那么,如何在Android中去开发VR功能的APP呢&#xff1f…

关于怎么在手机端实现一个拖拽的操作

手机端&#xff0c;肯定是监听touchstart,touchmove,touchend事件 先来看看效果 当拖拽时&#xff0c;拖拽到哪个节点下面&#xff0c;就把哪个节点添加到这个下面 <div>1111</div><div>2222</div><div>3333</div><div>4444</div…

二叉树的前序创建

1 #include <stdio.h>2 #define ElemType char3 //节点声明&#xff0c;数据域、左孩子指针、右孩子指针4 typedef struct BiTNode{5 char data;6 struct BiTNode *lchild,*rchild;7 }BiTNode,*BiTree;8 //先序建立二叉树9 BiTree CreateBiTree(){ 10 char c…

Apache Karaf遇到Apache HBase

介绍 Apache HBase是模仿Google Bigtable的开源&#xff0c;分布式&#xff0c;版本化&#xff0c;面向列的商店。 如果您是普通读者&#xff0c;那么您可能已经知道Apache Karaf是什么&#xff0c;但是对于那些不是的读者&#xff1a;Apache Karaf是一个OSGi运行时&#xff0c…

物联网架构成长之路(24)-Docker练习之Compose容器编排

0.前言  一开始学的之后&#xff0c;是想一步到位直接上Kubernetes(K8s)的&#xff0c;后面没想到&#xff0c;好像有点复杂&#xff0c;有些概念不是很懂。因此学习东西还是要循序渐进&#xff0c;慢慢来。先了解单机编排技术Docker Compose&#xff0c;了解一些技术细节及原…

CSS原理解析之模型篇

写在前面&#xff1a;尝试回答几个问题&#xff1a;什么是盒模型&#xff0c;控制盒模型的属性有哪些&#xff1f;Margin、Padding、Border、Width、Height这些属性改变/影响盒模型&#xff0c;但每个属性都会在所有元素上生效么&#xff1f;如果存在区别&#xff0c;那么和元素…