腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
双重
结构是未定义的行为吗?
、
、
、
、
不过,我忽略了
析
构
函数
调用
,发现允许“
双重
构造”很奇怪,并且不知道在同一个对象上再次
调用
构造
函数
是否是未定义的行为。在C++11 3.8.4 basic.life中,它读取 程序可以通过重用对象占用的存储或
显
式
调用
类类型的对象的
析
构
函数
来结束任何对象的生存期。对于具有非平凡
析
构
函数
的类类型的对象,在对象占用的存
浏览 5
提问于2020-11-10
得票数 4
回答已采纳
3
回答
为什么
显
式
调用
析
构
函数
会
导致
双重
释放
?
下面的代码以free():double free detected in tcache 2结尾。我想知道错误发生的内部过程。 错误取决于给定字符串的长度;如果将"test test"更改为"test",程序将正常运行,至少在我的计算机上使用g++时是这样。
浏览 62
提问于2021-02-26
得票数 4
回答已采纳
2
回答
动态库和主程序中的静态类变量
、
、
、
、
该类使用默认的(隐
式
的,未声明的)构造
函数
/
析
构
函数
。主程序使用dlopen()加载.so文件,并在其
析
构
函数
中
调用
dlclose()。当glibc
调用
静态类成员变量的
析
构
函数
时,程序在main退出后崩溃。问题似乎是,当
调用
dlclose()时,静态变量的
析
构
函数
也会被
调用<
浏览 1
提问于2010-04-13
得票数 4
回答已采纳
1
回答
析
构
函数
中的Delete[],构造
函数
中的分配
、
我在构造
函数
中分配内存,然后在
析
构
函数
中执行delete[],但是我得到了_Block_Type_Is_Valid (pHead->nBlockUse)" Error。在我的程序中,我只有一个实例,我使用或复制构造器,也没有复制赋值操作符,所以我认为我只需要
显
式
声明
析
构
函数
。在构造
函数
中,我正在复制char数组的值,我无法理解哪里出了问题。下面是程序代码的简短列表。
浏览 2
提问于2014-07-22
得票数 0
10
回答
调用
析
构
函数
,然后
调用
构造
函数
(重置对象)
、
、
1.// EDIT: The fact I used malloc instead of new doesn't carry any meaning但是,如果我给对象分配了,我能
显
式
地
调用
析
构
函数
吗? 常见问题解答:你不能,除非对象是用新的位
浏览 68
提问于2009-07-14
得票数 26
回答已采纳
4
回答
为什么
不删除具有C++11中未定义行为的
析
构
函数
的对象?
、
、
、
、
引用C++11标准3.8: 如果没有对
析
构
函数
的
显
式
调用
,或者如果未使用delete-表达式(5.3.5)来
释放
存储,则不应隐
式
调用
析
构
函数
,并且由
析
构
函数
产生的任何依赖于ff的程序都具有undefined未
调用
析
构
函数
的部分是清楚的。现在,假设跳过的
浏览 5
提问于2012-04-02
得票数 10
2
回答
是否有可能在实现IDisposable的类的
析
构
函数
中
调用
GC?
、
、
、
、
对不起,我的英语很差,似乎原来的问题对很多人来说都没有意义,所以我把这个问题简化成两个句子: 在的msdn代码示例中,在
析
构
函数
中
释放
非托管资源代码的目的是,当用户忘记
调用
Dispose()来
释放
资源时,GC仍然可以帮助
释放
至少非托管资源,但是当类使用一些非托管资源时,它必须(隐
式
或
显
式
地)将当前实例(或字段)注册到GC处理表,然后就不会是GCed,那么在这种情况下如何执行
析
构
<e
浏览 2
提问于2013-12-09
得票数 1
1
回答
在不
调用
析
构
函数
的情况下结束STL容器的寿命
、
、
问题C++11标准声明如下: 程序可以通过重用对象占用的存储或
显
式
调用
具有非平凡
析
构
函数
的类类型对象的
析
<em
浏览 2
提问于2014-10-11
得票数 2
回答已采纳
2
回答
显
式
调用
析
构
函数
、
我理解在大多数情况下,我们不应该
显
式
地
调用
析
构
函数
。但是,我看到了C++11 Standard N3485第13.4.5节模板参数中的一个示例: 对具有类模板专门化类型的对象的
显
式
析
构
函数
调用
可以
显
式
指定模板参数。我们可以
显
式
地
调用
析
构
函数</em
浏览 5
提问于2013-05-23
得票数 48
回答已采纳
2
回答
通过在此指针上放置新位置重新初始化对象的未定义行为
、
、
、
显然这是不好的,但我感兴趣的是
为什么
它是UB。我确实理解访问realloced指针的UB,但他说,这是一样的。相关问题:在中,它说"ok,如果没有例外“,说new (this) MyClass();
会
导致
UB。(与上述问题相反) 程序可以通过重用对象占用的存储或
显
式
调用
具有非平凡
析
构
函数
的类类型对象的
析
构
函数
来结束任何对象的生存期。对于具有非平凡
析</em
浏览 1
提问于2018-02-09
得票数 7
4
回答
为什么
我们说当对象超出作用域时
调用
析
构
函数
?
、
我了解到,当一个对象超出作用域时会
调用
析
构
函数
,并且
析
构
函数
也
会
删除这些对象。好吧,但这是怎么回事? 我
显
式
地
调用
析
构
函数
,如果它删除对象,那么
为什么
要隐
式
调用
析
构
函数
?尽管现在没有对象,因为它已经被
显
式
浏览 8
提问于2015-06-07
得票数 0
回答已采纳
2
回答
使用malloc
调用
free()来
释放
动态分配的内存的
析
构
函数
、
、
、
、
在C++中,如果我有一些使用malloc的动态分配的内存,我可以通过从
析
构
函数
调用
free(),然后通过类对象
显
式
地
调用
析
构
函数
来
释放
它们吗?现在允许这样做吗?所以这里我
显
式
地
调用
析
构
函数
。这是允许的吗?我是说,我
调用
它是为了
释放</
浏览 3
提问于2021-04-22
得票数 0
5
回答
默认
析
构
函数
做了多少
、
、
C++类中的默认
析
构
函数
是否
会
自动删除未在代码中
显
式
分配的成员?C() {}}; C* myC = new C(); return 0;删除myC
会
自动
释放
或者我需要写C的
析
构
函数
来
显
式
地做这件事?
浏览 0
提问于2012-03-31
得票数 12
回答已采纳
7
回答
析
构
函数
会
自动
释放
成员变量的堆内存吗?
; getchar();此外,在自动
调用
析
构
函数
时,
为什么
需要
显
式
删除,因为所有逻辑都可以用
析
构
函数
编写?对于操作符删除和
析
构
函数
,我感到非常困惑,无法理解它们的具体用法。详细的描述将是非常有用的。编辑:基于答案的理解:对于这种特殊情况,默认
析
构
函数
会</e
浏览 4
提问于2013-07-14
得票数 5
回答已采纳
10
回答
删除对象
、
、
首先,当您想在C++中
释放
分配给对象的内存时,哪一个是首选的?
显
式
调用
析
构
函数
还是使用delete?...delete object;object->~Object(); 其次,delete操作符是否隐
式
调用
析
构
函数
?
浏览 0
提问于2010-06-04
得票数 5
回答已采纳
8
回答
离开作用域时未
调用
析
构
函数
、
、
我正在学习C++中的内存管理,我不明白
为什么
在离开作用域时只
调用
一些
析
构
函数
。在下面的代码中,只在myfunc结束时
调用
obj1
析
构
函数
,而不是为动态分配的obj2
调用
。cl1 obj1(222,"NY"); obj2= new cl1; obj2 -> ~cl1 ; 下面是我的
析
浏览 0
提问于2011-07-18
得票数 2
回答已采纳
4
回答
linux c++中的内存
释放
?
、
、
、
、
在我应用程序中,我使用malloc()为我的变量(unsigned char*)分配了内存,当尝试在
析
构
函数
中
释放
内存时,我使用这个条件来避免
双重
损坏。unsigned char *wsqData;在我的
析
构
函数
中=NULL) free(wsqData);
浏览 3
提问于2012-04-23
得票数 0
回答已采纳
2
回答
销毁vs取消分配
、
uncreate
函数
的作用是销毁数组的每个元素并
释放
分配给数组的空间: if (data) { data = limit = avail = 0;显然,我们需要
释放
分配的空间但我不清楚
为什么
我们也要摧毁个别元素。如果我们只
释
浏览 7
提问于2013-08-06
得票数 9
回答已采纳
2
回答
如何删除字符串对象,它是C++联合的成员变量?
、
、
、
、
当我在联合中读取构造
函数
和
析
构
函数
时,我遇到了一个堆栈溢出问题。这两个是矛盾的。我可以知道我们如何删除字符串,即使我们需要
浏览 0
提问于2018-07-31
得票数 2
回答已采纳
2
回答
带指针的模板类
析
构
函数
、
、
、
考虑一下这个模板类class nodo{ T data;假设我没有重新定义
析
构
函数
。如果我们假设T=int,标准
析
构
函数
会
释放
数据。但是如果T=int*发生了什么呢?只是指针将被解除分配还是对象也将被指向?理论上只是指针。 如何
释放
指向的对象?最后,如何编写模板类的
析
构
函数
,该类的模板参数可以是指针
浏览 1
提问于2016-06-07
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
当对象释放时,避免析构函数调用两次
【C#】-C#Dispose模式详细分析
C/C+编程笔记:一文带你读懂C+面向对象和Java面向对象的区别
你踩过几种C+内存泄露的坑?
php魔术方法之
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
云直播
活动推荐
运营活动
广告
关闭
领券