腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
具有
唯一
指针
的
Rvalue
和
Move
语义
:
对象
0x7ffee5c7b670
的
错误
:未
分配
要
释放
的
指针
、
、
、
、
我正在尝试理解独特
的
指针
和
移动
语义
。现在,我已经在下面创建了一个虚拟示例来显示问题所在。我
的
问题是,为什么这段代码抛出一个被
释放
的
指针
没有被
分配
错误
?*/ my_object->print(); /* This next bit throws pointerbeing
浏览 14
提问于2020-09-12
得票数 1
回答已采纳
3
回答
使用std::
move
使用指向线程
的
指针
是否会带来性能成本?
、
、
、
我想std::
move
()在这样
的
上下文中会带来更多
的
性能成本:someArrOfThreads[0] = std::
move
(thrd)如果是这样的话,是std::
move
()改变了线程
的
内存边界还是其他什么
的
问题?我意识到,在第一种情况下,我实际上是将数组
的
值
分配
给线程,而另一种是指向线程
的
指针
,线程在第二种情况下停留在其地
浏览 0
提问于2016-10-17
得票数 6
回答已采纳
2
回答
创建移动赋值函数,继续获取“未
分配
指针
被
释放
”
、
、
我正在尝试创建一个移动赋值函数,但是我一直得到“
指针
被
释放
没有
分配
”。const MyString& MyString::operator=(MyString&&
move
){ if(thisstr[i] =
move
.str[i];
move
.str=nullptr;
浏览 3
提问于2019-06-10
得票数 0
回答已采纳
1
回答
RValue
引用是否在将其绑定(非
指针
)
对象
分配
给另一个
指针
之后删除它?
、
简短
的
问题:我
的
问题是,下面类似的代码
浏览 0
提问于2019-03-07
得票数 1
回答已采纳
2
回答
堆栈可以有一个异常安全
的
方法返回
和
删除顶部元素
的
移动
语义
吗?
、
、
、
在一个关于std::stack::pop()
的
问题
的
回答中,pop不返回值是出于异常安全原因(如果复制构造函数抛出会发生什么情况)。 评论说,现在使用移动
语义
,这已经不再相关了。这是真的吗?对于积分,这个操作能提供什么样
的
线程安全保证?
浏览 3
提问于2010-04-12
得票数 10
回答已采纳
2
回答
在没有复制变量
的
情况下创建一个变量列表
、
、
主要问题: 下面的只是为了回答人们对我为什么要做这个
的
任何问题。我想这样做,这样我就可以跟踪游戏中由特定方法呈现
的
所有
对象
(一个列表用于三角形,另一个用于线条,等等)。在我开始尝试对向量中
的
这些实体进行更改之前,这是非常成功
的
。这意味着突然有两个实体代表1,主世界中
的
实体受所有游戏逻辑
的
影响,而en
浏览 2
提问于2014-01-28
得票数 0
回答已采纳
1
回答
将块存储在c样式数组中。
、
、
我正在尝试动态实例化一个c数组
的
块,加载它,然后运行它们,可能需要一些帮助。我并不完全理解对__strong
的
需求,但是编译器会抱怨out。房地产是否也应该有一个强有力
的
指标?还有什么事我搞砸了吗?
浏览 2
提问于2014-10-18
得票数 1
回答已采纳
3
回答
区分
rvalue
视图
和
rvalue
容器
、
、
、
、
但是,使用C++1Y
的
string_view
和
概念上类似的类型,我们有可迭代
对象
,它们不是容器,而是容器中
的
视图。在
语义
上,我相信视图
的
行为就像
指针
,因此它们
的
“按值”复制是将视图复制到容器中,而不是它们所引用
的
数据。同时,容器遵循值
语义
,因为它们是
rvalue
,所以移动它们
的
内容是有效
的
。视图与容器几乎没有区别,
rvalue
容器是有效
的
浏览 4
提问于2013-07-12
得票数 3
回答已采纳
4
回答
取消引用无效
指针
而不使用结果是C++中未定义
的
行为吗?
、
、
; // Deliberately uninitialized}(如果这是一个副本,我很抱歉,但我似乎在网站上找不到任何专门问这个问题
的
东西。)
浏览 7
提问于2016-02-29
得票数 2
回答已采纳
1
回答
我是否正确地使用移动
语义
?会有什么好处呢?
、
、
、
我想知道我是否正确地使用了
move
语义
: protected: Common::Point3DCommon::Point3D &&normal, Common::Point2D &&uv, Common::Point2D &&tangent) : position(std::
move
(position)), normal(std::
move</
浏览 1
提问于2015-05-18
得票数 1
2
回答
分配
错误
后
释放
内存(realloc)
、
、
、
下面的第一个if语句检查在向数组添加元素时,是否已达到缓冲区大小
的
末尾。如果有,它就会复制原来
的
大小。 exit(EXIT_FAILURE); } } 最后一条if语句检查
分配
错误
,如果发生
错误
,它将
释放
指向原始tokens
的
tokens_backup。如果确实存在
分配
错误</
浏览 6
提问于2021-10-05
得票数 0
2
回答
为什么unique_ptr
和
shared_ptr不使它们构建
的
指针
失效?
、
、
、
、
的
相关构造函数期望将原始
指针
作为
rvalue
获得,则shared_ptr
和
unique_ptr都可以阻止上述操作,例如,对于unique_ptr:class因此,原始代码不会编译为lvalue不能绑定到
rvalue
,但是使用std::
move
可以编译代码,同时更详细
和
更安全:std::unique_ptr<int甚至在make_unique添加到C++14之前,
浏览 2
提问于2020-03-04
得票数 4
回答已采纳
4
回答
此C++
move
构造函数中是否存在内存泄漏?
、
、
在Stroustrups
的
C++编程语言第四版中,在第76页上,有使用
move
构造函数
的
示例。z=x; //we get a copy // ...return z; //we get a
move
这样
的
移动操作似乎会导致内存泄漏,因为y在在y= std::<em
浏览 1
提问于2016-07-22
得票数 4
1
回答
c++移动
语义
澄清
、
方法SetText如下:{}void Text::SetText( std::string&& str ) {m_str =
move
( s
浏览 2
提问于2014-07-31
得票数 4
回答已采纳
2
回答
移动构造函数如何在C++中工作?
、
、
、
、
我读过许多关于
move
构造函数
的
文章(甚至在堆栈上),但我没有找到关于它是如何工作的确切解释(如何将
指针
传输到临时
对象
,如果这个临时变量及其地址在遇到时被破坏,那么如何保存)。foo(std::
move
(createBoVector()));} 所有的人都说移动Ctor是一个浅拷贝拷贝,或者只是一个
指针
赋值。但是,如何使用指向临时
对象
的
指针
来启动我
的
对象
(当这个
浏览 0
提问于2018-01-17
得票数 6
回答已采纳
4
回答
为什么悬空
指针
引用会使程序崩溃
、
、
、
、
我听说过很多次,悬空
指针
取消引用会导致程序崩溃,但我不知道为什么。有人能给我解释一下吗?据我所知,在C/C++中,在我们通过
指针
p
释放
内存
对象
o之后,p变成了一个悬空
指针
,它指向
语义
上无效
的
内存地址addr。也许稍后,内存
分配
器会将addr重新
分配
给另一个内存
对象
。无论是否发生这种情况,os都将认为addr仍然是
要
访问
的
合法地址,因为存储器
分配
器仅从os
浏览 0
提问于2016-03-22
得票数 1
1
回答
是否将堆栈
对象
(由函数
的
值返回)有效地
分配
给堆?
我有一个由函数makeFoo()
的
值返回
的
对象
Foo,我需要通过一个
指针
将它
的
所有权传递给另一个
对象
FooHolder(Foo* foo)。我当前
的
解决方案是通过将堆栈上
的
Foo
对象
传递给
具有
移动
语义
的
Foo构造函数来创建一个Foo堆
对象
: Foo foo = makeFoo(...); Foo* fooPtr = new Foo(std::
move</e
浏览 11
提问于2019-09-17
得票数 0
1
回答
不删除静态
指针
(google样式)
、
据称, ..。常见模式 ..。地图、集合
和
其他动态容器:.如果您确实喜欢标准库中
的
动态容器,请考虑使用函数本地静态
指针
,如下所述。如果所有这些都失败了,您可以动态地创建一个
对象
,并且永远不要使用函数--本地静态
指针
或引用(例如static const auto& impl = *new T(args...);)来删除它。据我
浏览 4
提问于2021-02-16
得票数 0
2
回答
如何将
对象
的
所有权传递给函数
的
外部
、
、
是否有任何方法可以将堆栈内存上
的
函数中创建
的
对象
的
所有权传递到函数
的
外部,而无需使用复制构造 通常,编译器将自动调用函数堆栈上
的
对象
的
销毁。因此,如果我们想要创建一个类
的
对象
(可能有一些特定
的
参数),我们如何避免浪费大量资源从临时
对象
复制?vector时,普通
的
值传递方式将花费大量时间复制
对象
。我不想在堆内存中使用
指针
和
浏览 5
提问于2017-08-16
得票数 3
回答已采纳
2
回答
X上
的
Box<X>与
move
语义
关于Box<X>,我有一个简单
的
问题。我理解它
的
作用,它在堆中
分配
X。在C++中,您使用新运算符在堆上
分配
一些东西,这样它就可以超过当前作用域(因为如果在堆栈上创建某个东西,它就会在当前块
的
末尾消失)。但是阅读Rust
的
文档,它看起来像是,您可以在堆栈上创建一些东西,并且仍然可以利用语言
的
移动
语义
来返回它,而不必求助于堆。然后,我不清楚什么时候使用Box<X>,而不是简单地使用X。我刚开始读关于铁锈
的
书,所以如
浏览 6
提问于2016-05-09
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券