C++ new的时候,为啥会存在内存分配会失败的情况?啥导致的呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ new的时候,为啥会存在内存分配会失败的情况?啥导致的呢?相关的知识,希望对你有一定的参考价值。
参考技术A 这样是会有内存泄漏的,因为第一次执行s=
new
stu;
后,系统申请了一块新的内存空间(类型为stu),并把其地址赋给s
第2此执行s
=
new
stu后,系统又申请了一块新的内存空间,并把其地址赋给s,此时把s原来的值覆盖掉了,也就是第一次申请的内存空间的地址丢失了
而delete
s;
只是把现在s指向的内存中的变量删除,这就把第二次申请的变量删除了,但是这样并不能将第一次申请的变量删除,因为其地址已经丢失掉了
就算你执行两次delete语句也是没有用的,这样就算编译器不报错,执行程序的时候都会报错,因为你删除了同一个地址两次
以上是关于C++ new的时候,为啥会存在内存分配会失败的情况?啥导致的呢?的主要内容,如果未能解决你的问题,请参考以下文章