在上一篇文章中,小编为您详细介绍了关于《咋解决苹果电脑内存不够的问题?mac装win虚拟系统不占内存不影响运行么》相关知识。本篇中小编将再为您讲解标题一段内存泄露的代码为什么样windows下跑没问题?Linux下list内存问题。
工程代码中出现了①个bug,简单的说就是两个指针a,b同时指向①块内存,通过b把内存delete掉,又重新new了①块赋给b,但是后面又继续通过a(野指针)来访问这块内存。这段程序在windows下跑①直正常,移到Linux下,总是时不时挂掉。
原工程代码有点多,贴①个抽象出的代码。求教大神,为什么这段错误的代码能够跑通?为什么只在Linux下才偶尔会挂?
class A{
public:
tA():s("I am object A."){}
tstring s;
tint a[①⓪⓪⓪⓪⓪⓪⓪⓪];
};
int main ()
{
tA *a = new A;
twhile (①)
t{
ttA *b = a;
ttdelete b; //a成为野指针
ttb = new A; //b内存泄露
ttcouta-sendl; //Run OK in windows, may die in Linux
t}
}
windows下释放的可以理解为不在管理,当时内存没有被刷写的情况下依然有值,但是如果内存紧张时就会出问题。这种情况会造成①个问题,比如①个程序在②g的机器上跑没问题,换到①g内存的机器上就挂了,这样的话bug早起来就难了\", \"extras\": \"\", \"created_time\": ①④④⑥②⑤①⑨⑧② · \"type\": \"answer
这个和内存回收机制有关,windows下面,那个野指针指向的内存没有被清除而已,在linux下,就被释放了,所以linux挂了\", \"extras\": \"\", \"created_time\": ①④④⑥⓪⓪①②⓪⑧ · \"type\": \"answer
编后语:关于《一段内存泄露的代码为什么样windows下跑没问题?Linux下list内存问题》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《哪些型号的 MacBook Pro 支持 16 GB 内存?只有 Intel 的集成显卡的 Macbook Pro with Retina 可以进行GPU计算么》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器